求助,相同代码产生的结果却不同,JS检索xml文件遇到的问题!
本帖最后由 vc_coldplay 于 2013-02-18 12:53:32 编辑 第一个问题:
以下JS代码运行环境、条件皆完全相同,但运行结果不同,请高手指点下!
这段代码可以成功运行
var str="/root/oragnization[ID='1234']";
var target=xmlDoc.selectSingleNode(str);
这段代码是通过参数传递的值,最终产生的str在调试中分析过,和上面代码中的str完全一样。但却找不到节点,target为null。
var str="/root/oragnization[ID='"+node[0].id"']";
var target=xmlDoc.selectSingleNode(str);
第二个问题,在我的XML文件中,ID为1234的节点有5个:
var str="/root/oragnization[ID='1234']";
var target=xmlDoc.selectNodes(str);
这段代码可以选中5个节点,调试信息中target.length也等于5.
但当我试图用以下语句输出时却无效:
for(var i in target)
{
alert(i.nodename);
}
代码只能遇到到for的一行即退出?
请大家帮忙指点下,谢谢! XPATH dom xml javascript
[解决办法]
看下target有没有childNodes属性
for(var i in target.childNodes)
[解决办法]
for(var i in target)
{
alert(i.nodename);
}
这种写法不能实现你要的效果。JS里面for的便利是对象的属性,而非集合的元素。
所以如果你要遍历,应该用for(var i=0;i<target.length;i++)这种写法