Jac*_*nkr 4 javascript innerhtml html5-canvas
让我说我有
var myCanvas = document.createElement('canvas');
Run Code Online (Sandbox Code Playgroud)
而我呢
myCanvas.setAttribute("id", "my-canvas");
document.body.appendChild(myCanvas);
Run Code Online (Sandbox Code Playgroud)
后来我改变了myCanvas并希望用我更新的画布替换 html- DOMcanvas.以下作品:
document.getElementById("my-canvas").innerHTML = myCanvas;
Run Code Online (Sandbox Code Playgroud)
但是html(通过检查员)看起来像
<canvas id="my-canvas">[object HTMLCanvasElement]</canvas>
Run Code Online (Sandbox Code Playgroud)
什么时候看起来像
<canvas id="my-canvas"></canvas>
Run Code Online (Sandbox Code Playgroud)
如何更新元素而不使用innerHTML?
myCanvas 如果它仍然是同一节点,则不必更新.当您创建节点并附加它时,请执行DOM,然后DOM节点处于活动状态.这意味着所有更改myCanvas将立即反映在页面中.
如果要替换具有不同节点的节点,可以在要替换的节点.replaceChild()的父元素上使用.
例:
document.getElementById("parent").replaceChild(element, newElement);
Run Code Online (Sandbox Code Playgroud)
parent父元素在哪里element?
<div id="parent">
<canvas id="element"></canvas>
</div>
Run Code Online (Sandbox Code Playgroud)
在您提出的问题中innerHTML.如果您只想用另一个元素的内容替换一个元素的内容,那么就使用innerHTML它们.
例:
document.getElementById("element").innerHTML = newElement.innerHTML;
Run Code Online (Sandbox Code Playgroud)