如何从javascript获取childs数据

如何从javascript获取childs数据,javascript,syntax-error,parent-child,Javascript,Syntax Error,Parent Child,谁能解释一下我做错了什么 让toolbarForChilds=document.getElementById(“toolbar”); for(设i=0;i

谁能解释一下我做错了什么

让toolbarForChilds=document.getElementById(“toolbar”);
for(设i=0;i

#1
#2

childNodes
包括所有子节点,包括非元素节点,如textcomment节点。要仅获取元素集合,请改用
ParentNode.children

您不需要使用
childNodes
。您可以使用
queryselectoral()
以所有元素为目标,并按以下方式循环它们:

let toolbarForChilds=document.queryselectoral(#toolbar div”);
for(设i=0;i

#1
#2

这里的问题是,childNodes不仅返回。还有一些节点没有样式属性。例如,html标记之间有空标记。如果添加
console.log(toolbarForChilds.childNodes[i]),您应该在浏览器控制台中看到这一点在for循环中。

代码不起作用的原因是childNodes还包括元素之间的换行符。您可以
console.log
子节点来查看它们。如果您用try-catch来跳过这些代码,那么您的代码就可以工作,尽管您应该遵循Mamun的答案,寻找一种更干净的方法来完成它

for (let i = 0; i < toolbarForChilds.childNodes.length; i++) {
    try {
      toolbarForChilds.childNodes[i].style.cursor = "default";
    }
    catch {
        continue;
    }
}
for(设i=0;i
节点。childNodes
返回没有样式属性的元素,如文本节点。对于仅获取节点元素,即div的:
id=“title”
id=“另一件事”
使用
node.children
。这将在下面实现

让toolbarForChilds=document.getElementById(“toolbar”);
/*log(toolbarForChilds.childNodes)*/
for(设i=0;i

#1
#2

“childNodes包括所有子节点,包括非元素节点,如文本和注释节点”-因此并非所有节点都具有
样式
属性您可以使用
。children
仅用于元素谢谢,这就是我试图实现的!