1

我有以下内容:

root = xmlDoc.documentElement;

for (i=0; i<root.childNodes.length; i++) {              

if (root.childNodes[i].nodeType==1){ // FILTERING NODE TYPE
myvar = root.childNodes.length;
alert (myvar.length);
}
}

长度返回 7 - 这反映了所有节点类型(未过滤)。

我想要的是: myvar 应该只包含类型 1 的节点元素

我怎样才能做到这一点?

谢谢,L。

4

3 回答 3

0

使用 parseFloat 函数获取 int val 到 cpmpare

root = xmlDoc.documentElement;

for (i=0; i<root.childNodes.length; i++) {              

  if (parseFloat(root.childNodes[i].nodeType)==1){ // FILTERING NODE TYPE
     myvar = root.childNodes.length;
     alert (myvar.length);
  }
}
于 2012-09-24T13:21:18.983 回答
0

我不确定这是否真的符合您的目的,但它应该有效。

root = xmlDoc.documentElement;
var children = root.childNodes;
for (i=0; i<children.length; i++)
  if (children[i].nodeType==1) // FILTERING for element NODE TYPE
    alert(children[i]).length);

让我知道您真正想要做什么,以便我可以编辑此答案以使其更适合。

于 2012-09-24T13:29:19.503 回答
0

您的代码将始终返回数组的长度,而不管它包含的节点类型如何。如果要获取等于1的节点类型数,可以使用下面的代码:

root = xmlDoc.documentElement;
var counter = 0;
for (i=0; i<root.childNodes.length; i++) {              
   if (root.childNodes[i].nodeType == 1){
      counter++;
   }
}
alert (counter);
于 2012-09-24T13:30:09.687 回答