The Html collection has .length, but undefined.item (*)

I have a function that calls an xml page, selects elements by tag names, and I'm trying to call a specific one back. code so far:

var xmlDoc = loadXMLDoc("test.xml");
var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x.item(2); 

This will return the [object element]

var xmlDoc = loadXMLDoc("test.xml");
 var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x[2].data; 

The above code gives me undefined.

var xmlDoc = loadXMLDoc("nhl.xml");
var x = xmlDoc.getElementsByTagName("tagname");
var PittWins = x.length;

when entered above, I get the correct result.

I am trying to understand why it gives me the length and not the specific node ..

+3
source share
1 answer

How about var PittWins = x[2];?


Re: OP edit

You say that x.item(2)they x.lengthreturn what you expect, but x[2].datano? Why do you expect an element to have a property data? Are you trying to write a parenthesized version 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;
+3

Source: https://habr.com/ru/post/1786437/


All Articles