我希望脚本在xml(当然在标记内)中找到它说的“ anyword”的位置,然后停止。下面做到了。
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i].textContent;
}
}
但是我想更进一步,找到“ anyword”后就可以将“ variable”设置到下一个节点。因此我尝试了类似的操作,它返回了集合中的最后一个元素,而不是下一个。
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i+1].textContent;
}
}
所以我再次编辑了最后一行并使其成为
var variable = x[i].nextSibling.textContent;
此返回null。在这里扯我的头发。如果它有助于回答任何问题,如果我把它x[i].nextSibling
放回[Object Text]
有帮助吗?
由x[i].textContent = "anyword"
表示,您是指x[i].textContent == "anyword"
吗?
这是人们常见的问题。现代浏览器(除IE外,基本上所有其他浏览器)都会在元素之间添加文本节点。这些文本节点仅包含空格,并没有太多用处。使用此功能查找下一个节点。
function nextSibling(node) {
do {
node = node.nextSibling;
} while (node && node.nodeType != 1) ;
return node
}
这里得到很好的解释:JavaScript XML Parsing
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
for (var i=0;i<=x.length;i++){
if (x[i].textContent = "anyword") {
var variable = x[i+1].textContent;
}
}
我没有详细介绍,但是这对我来说似乎很奇怪:
for (var i=0;i<=x.length;i++)
您是否尝试过
for (var i=0;i<x.length;i++)