我有一个调用 xml 页面的函数,通过标签名称挑选元素,然后我试图回调一个特定的元素。到目前为止的代码是:
var xmlDoc = loadXMLDoc("test.xml");
var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x.item(2);
这会回来[对象元素]
var xmlDoc = loadXMLDoc("test.xml");
var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x[2].data;
上面的代码给我未定义。
var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x.length;
当在上面输入时,我得到一个正确的结果。
我试图理解为什么它给我一个长度而不是一个特定的节点..
最佳答案
var PittWins = x[2];
呢?
回复:OP 编辑
你是说 x.item(2)
和 x.length
返回你期望的,但是 x[2].data
不是吗?为什么您希望该元素具有 data
属性?您是否正在尝试编写 x.item(2)
的括号版本?
x.item(2)
等价于x[2]
。
x.item(2).data
等同于 x[2].data
。
你想做什么?此外,您在不同的示例中使用了不同的 XML 文件名和标签名。这是故意的吗?
编辑 #2
要检索元素的文本内容,请使用 Node.textContent
或 Node.nodeValue
.您的代码可能如下所示:
var PittWins = x[2].textContent;
关于javascript - Html 集合具有 .length 但未定义 .item(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4737769/