它在身体上运行正常但在第一个孩子上输出undefined。 我做错了什么?
function doit(e) {
console.log('tag: ' + e.tagName);
console.log('nt: ' + e.nodeType);
for (var childElement in e.children) {
doit(childElement);
}
}
doit(document.body);
<body>
<ul id="fork">
<li id="myli" class="myclass">Hello</li>
</ul>
</body>
修改
这帮助我完成了我的css清洁工。查看 [jsfiddle]
答案 0 :(得分:3)
for...in
循环迭代可枚举属性,但您想迭代这些值。然后,
for (var prop in e.children)
doit(e.children[prop]);
然而,这是迭代类似数组的对象的坏方法。更好地使用
for (var i = 0; i<e.children.length; ++i)
doit(e.children[i]);
或使用ES5数组方法
[].forEach.call(e.children, doit);
function doit(e) {
console.log('tag: ' + e.tagName);
console.log('nt: ' + e.nodeType);
[].forEach.call(e.children, doit);
}
doit(document.body);
&#13;
<ul id="fork">
<li id="myli" class="myclass">Hello</li>
</ul>
&#13;