Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
如何将dom元素传递给javascript函数?_Javascript_Arrays_Dom - Fatal编程技术网

如何将dom元素传递给javascript函数?

如何将dom元素传递给javascript函数?,javascript,arrays,dom,Javascript,Arrays,Dom,我来自python的背景,所以如果这听起来很愚蠢,请不要批评我。但是我有来自dom的三个元素,它们存储在各自的变量中,然后用这些变量组成一个数组 var item = document.getElementById("s-tools"); var item2 = document.getElementById("s-tools2"); var item3 = document.getElementById("s-tools3"); var arr = [item, item2, item3]

我来自python的背景,所以如果这听起来很愚蠢,请不要批评我。但是我有来自dom的三个元素,它们存储在各自的变量中,然后用这些变量组成一个数组

var item = document.getElementById("s-tools");
var item2 = document.getElementById("s-tools2");
var item3 = document.getElementById("s-tools3");
var arr = [item, item2, item3]
现在,我尝试在for循环中迭代这个dom对象数组,并从这些项中删除子元素

 for (var item in arr) {
     while (item.hasChildNodes()) {
          item.removeChild(item.lastChild);
          }
     }
然后抛出以下错误,项目中的值为0

未捕获类型错误:item.hasChildNodes不是函数

for…in循环不迭代值。它迭代属性名。 试试这个

for (var name in arr) {
    var item = arr[name];
    while (item.hasChildNodes()) 
        ....

for…in循环不迭代值。它迭代属性名。 试试这个

for (var name in arr) {
    var item = arr[name];
    while (item.hasChildNodes()) 
        ....

由于您正在为每个循环使用,项将是您的键。在数组中,item是数组的数组索引,您试图执行函数删除数组索引上的child,这就是为什么会出现错误的原因。您需要为要执行的函数提供精确的元素

请参阅代码片段

var item=document.getElementById(“s-tools”);
var item2=document.getElementById(“s-tools2”);
var item3=document.getElementById(“s-tools3”);
var arr=[项目,项目2,项目3]
用于(arr中的var项目){
while(arr[item].hasChildNodes()){
arr[item].removeChild(arr[item].lastChild);
}
}

帕拉

帕拉


para

由于您正在为每个循环使用,项将是您的键。在数组中,item是数组的数组索引,您试图执行函数删除数组索引上的child,这就是为什么会出现错误的原因。您需要为要执行的函数提供精确的元素

请参阅代码片段

var item=document.getElementById(“s-tools”);
var item2=document.getElementById(“s-tools2”);
var item3=document.getElementById(“s-tools3”);
var arr=[项目,项目2,项目3]
用于(arr中的var项目){
while(arr[item].hasChildNodes()){
arr[item].removeChild(arr[item].lastChild);
}
}

帕拉

帕拉

para

似乎更容易做到

document.queryselectoral(“#s-tools,#s-tools2,#s-tools3”).forEach(el=>{
而(el.firstChild)el.firstChild.remove();
});

儿童1
儿童2
儿童3
儿童4
似乎更容易做到

document.queryselectoral(“#s-tools,#s-tools2,#s-tools3”).forEach(el=>{
而(el.firstChild)el.firstChild.remove();
});

儿童1
儿童2
儿童3
儿童4

请共享html代码。也可使用
for。。在
中迭代数组是一个不好的主意。可能重复的请共享html代码。也可以使用
for。。在
中,迭代一个数组是一个坏主意,它可能会像一个符咒一样工作!谢谢我会在6分钟内接受答案!但是还有其他更优雅的方法吗?是的,您可以使用jquery$('element').empty();如果你想使用jquery。工作起来很有魅力!谢谢我会在6分钟内接受答案!但是还有其他更优雅的方法吗?是的,您可以使用jquery$('element').empty();如果您希望使用jquery。