jquery how to access the an xml node by index?
        Posted  
        
            by DS
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by DS
        
        
        
        Published on 2010-05-21T05:15:34Z
        Indexed on 
            2010/05/21
            5:20 UTC
        
        
        Read the original article
        Hit count: 249
        
Hi,
say I've an xml returned from server like this:
<persons>
        <person>
               <firstname>Jon</firstname>
        </person>
        <person>
               <firstname>Jack</firstname>
        </person>
        <person>
               <firstname>James</firstname>
        </person>
</persons>
If I want to access the 3rd firstname node (passed dynamically and stored in i, assumed to be 3 here), how do I do that? My weird attempt follows:
var i=3;
$(xml).find('firstname').each(function(idx){
       if (idx==i) alert($(this).text());
});
It does fetch me the right content... but it just feels wrong to me especially the looping part. Basically I'm looping through the whole tree using .each()! Is there any better approach than this? Something that'd take me to the nth node directly like:
alert( $(xml).find('firstname')[idx].text() ); // where idx=n
I'm new to jquery so please excuse my jquery coding approach.
© Stack Overflow or respective owner