javascript - 使用 DOM Canvas 更新 Canvas 元素

标签 javascript innerhtml html5-canvas

假设我有

var myCanvas = document.createElement('canvas');

我也是

myCanvas.setAttribute("id", "my-canvas");
document.body.appendChild(myCanvas);

后记 我对 myCanvas 进行了更改,并希望用我更新的 DOM Canvas 替换 html-canvas。以下作品:

document.getElementById("my-canvas").innerHTML = myCanvas;

但是 html(通过检查器)看起来像

<canvas id="my-canvas">[object HTMLCanvasElement]</canvas>

什么时候应该是这样

<canvas id="my-canvas"></canvas>

如何更新元素而不使用 innerHTML

最佳答案

您不必更新 myCanvas 如果它仍然是同一个节点。当您创建一个节点并将其附加到 DOM 时,DOM 节点事件。这意味着 myCanvas 上的所有更改将立即反射(reflect)在页面中。

替换子()

如果你想用不同节点替换一个节点,你可以使用.replaceChild()在要替换的节点的父元素上。

示例:

document.getElementById("parent").replaceChild(element, newElement);

其中 parentelement 的父元素。

<div id="parent">
  <canvas id="element"></canvas>
</div>

内部HTML

在您的问题中,您使用的是 innerHTML .如果您只想用另一个元素的内容替换一个元素的内容,请对这两个元素使用 innerHTML

示例:

document.getElementById("element").innerHTML = newElement.innerHTML;

关于javascript - 使用 DOM Canvas 更新 Canvas 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8380411/

相关文章:

javascript - 为什么更改我的框的innerHTML 会使我的按钮在Greasemonkey 中停止工作?

javascript - 如何在 <canvas> 中正确设置动画?

javascript - 更改传递给函数的数组

javascript插入html代码

javascript - 将 mouseleave 函数添加到 div 中的多个 Accordion ?

javascript - InnerHTML 会覆盖以前的条目吗?

javascript - 延迟后复制功能

html - 在 <canvas> 上鼠标悬停时制作图像缩放

javascript - e.parentNode.parentNode.childNodes[i].innerText 的 Jquery 等效/浏览器兼容性;

javascript - 需要帮助在 ASP.NET Web 窗体中使用 jQuery 遍历元素