我是javascript的新手,但这是我想要做的。请注意,我四处寻找答案,但没有任何帮助。
我正在尝试遍历XML元素,但它在IE8中不起作用。虽然它在Firefox中运行得很好。如果不工作,我的意思是即使有元素,它也不会进入循环。
这是我试图遍历的XML:
var $anXml = $('<node id="anID" inline="0" leaf="true">'
+'<sub_node1>Text \(more text\)</sub_node1>'
+'<sub_node2>Text \(more text\)</sub_node2>'
+'</node>');
以下是我用来遍历的代码:
alert('children before loop: ' + $anXml.children.length);
$anXml.children().each(function() {
alert('child traversed!');
var $aChild = $(this);
$anotherXml.data(this.nodeName.toLowerCase(), $aChild.html());
});
alert('children after loop: ' + $anXml.children.length);
以下是警报的输出:
children before loop: 2
children after loop: 2
'孩子穿越了!'永远不会显示。
任何想法都会非常感激。
答案 0 :(得分:0)
如果$anXml.children.length
正在工作,它不是jQuery对象,因为.children是本机元素的属性,而不是jQuery,所以你必须包装它:
$($anXml).children().each(function() {
alert('child traversed!');
var $aChild = $(this);
$anotherXml.data(this.nodeName.toLowerCase(), $aChild.html());
});