如何将dom元素传递给javascript函数?
我来自python的背景,所以如果这听起来很愚蠢,请不要批评我。但是我有来自dom的三个元素,它们存储在各自的变量中,然后用这些变量组成一个数组如何将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]
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。