Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除多个画布_Javascript - Fatal编程技术网

Javascript 删除多个画布

Javascript 删除多个画布,javascript,Javascript,我需要删除创建的多个画布元素。使用下面的功能,我可以在每次单击按钮时删除一个,但我需要一次删除所有创建的画布。我该怎么做 function deleteCanvas() { var list = document.getElementById("output"); list.removeChild(list.childNodes[0]); } 您可以在时使用,只要列表中有子元素,就可以继续删除它们: 函数deleteCanvas(){ var list=docum

我需要删除创建的多个画布元素。使用下面的功能,我可以在每次单击按钮时删除一个,但我需要一次删除所有创建的画布。我该怎么做

function deleteCanvas() {
  var list = document.getElementById("output");
  list.removeChild(list.childNodes[0]);
}

您可以在时使用
,只要列表中有子元素,就可以继续删除它们:

函数deleteCanvas(){
var list=document.getElementById(“输出”);
while(list.childNodes.length){
list.removeChild(list.childNodes[0]);
}
}
画布{
宽度:10px;
高度:10px;
外形:纯红1px;
}

删除所有画布元素
,各种方法可以选择多个元素。只需在返回的列表上循环并删除()即可

例如,如果您有一堆要删除的
元素,您可以使用带有querySelectorAll的
canvas.game
css选择器,或者将
game
传递到
getElementsByClassName
以这些特定元素为目标(不考虑其他画布元素):

let list=document.querySelectorAll('canvas.game');
//或
let list=document.getElementsByClassName(“游戏”);
对于(设i=0;i可能是这样

let canvasses = document.getElementsByTagName("canvas");
//you can also do this with classes.

while (canvasses.length > 0) {
    for (let i =0; i < canvasses.length; i++) {
        canvasses[i].remove();
    }
}
let canvasses=document.getElementsByTagName(“canvas”);
//您也可以通过类来实现这一点。
而(canvasses.length>0){
for(设i=0;i
你能发布你的html文件吗?你所有的画布元素都包含在“output”元素中吗?@FZs它们包含:并且有一个适用于旧浏览器的多边形填充(IE)哦,是的,我知道了!我不知道!我一直使用
node.parentNode.removeChild(node)
为此…直到现在。+1注意,这将不分青红皂白地删除父元素中的所有节点,而不会检查它是否正在删除画布元素。此外,
childNodes
包含文本节点,因此您可能会意外删除非空文本节点。
children
可能是更好的选择,因为它只包含元素。
let canvasses = document.getElementsByTagName("canvas");
//you can also do this with classes.

while (canvasses.length > 0) {
    for (let i =0; i < canvasses.length; i++) {
        canvasses[i].remove();
    }
}