【发布时间】:2011-11-13 05:31:20
【问题描述】:
我正在尝试制作一个可行走的 DOM 树,如下所示:
输入:
<div>
<span>Foo</span>
<span>Bar</span>
</div>
输出(类 Python):
{'div': [{'span': 'Foo'},
{'span': 'Bar'}]}
我想像这样遍历它:
elements['div']['span']; // Output is "Foo".
我当前的代码是这样的:
function createObject(element) {
var object = {};
if (element.childNodes.length > 0) {
for (var i = 0; i < element.childNodes.length; i++) {
object[element.tagName] = createObject(element.childNodes[i]);
}
return object;
} else {
return element.nodeValue;
}
}
但它不起作用(循环不运行)。谁能帮忙解决这个问题?
【问题讨论】:
-
这一行有一个错误:
object[element.tagName] = createObject(element.childNodes[i]);,在您的示例中,第二个跨度将消除第一个跨度,因为element.tagName不是唯一的。 -
你确定你的意思是 tagName 而不是 nodeName?
标签: javascript dom object