0
我有一个jQuery递归函数,它解析我的xml数据,但我试图选择子元素的子元素,所以基本上元素内的元素。例如在xml中我想选择<to>
标签,所以我可以缩进并添加一个展开折叠按钮。jQuery递归函数select children
XML
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
jQuery的
function traverse(tree) {
$(tree).contents().each(function (i, child) {
if (child.nodeType == 3) { // text node
$("#xml-reader").append(
'<span>' + child.nodeValue + '</span>'
);
// this is my attempt
if (child.children) { // element node
$("#xml-reader").append(
'<br><i>' + child.nodeName + ": " + '</i>'
);
}
} else {
if (child.nodeType === 8) { // comment node
$("#xml-reader").append(
'<i>' + child.nodeValue + '</i>'
);
}
else {
$("#xml-reader").append(
'<br><b>' + child.nodeName + ": " + '<b>'
);
traverse(child);
}
}
}
);
}
traverse($(xml).find('*'));
'当你要访问一个节点的孩子,那么它应该是一个函数child.children':'child.children ()'。如果child是一个包含节点的对象,那么你可以通过'child.to'来访问它。为了验证你能设置一个例子,还是在'.each()'里面指定'tree'或'child'的内容? – empiric
@empiric我重写了整个功能。我现在有一个递归函数,它将解析任何xml文件并将其作为可扩展树在浏览器中输出。 – theWhiteFox