2013-04-29 122 views
0

我試圖製作一個腳本,該腳本返回具有某個ID屬性的元素的子節點,但它在每次執行時都會失敗。 somone能幫助我嗎?獲取父節點有ID的子節點

我的XML文檔是這樣的:

<prices> 
    <car id="1"> 
     <name>Toyota</name> 
     <price_day>250</price_day> 
    </car> 
    <car id="2"> 
     <name>Opel</name> 
     <price_day>100</price_day> 
    </car> 
</prices> 

我想用JavaScript只與id="1"坐上汽車的數據。 我的最後一次嘗試是這樣的:

var x=xmlDoc.getElementsByTagName("car"); 
for (i=0;i<x.length;i++) 
{ 
    document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue); 
} 

它寫的所有條目...

回答

0

試試這個:

var txt='<prices><car id="1"><name>Toyota</name><price_day>250</price_day></car> <car id="2"><name>Opel</name><price_day>100</price_day></car></prices>'; 
if (window.DOMParser) 
{ 
    parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(txt,"text/xml"); 
} 
else // Internet Explorer 
{ 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.loadXML(txt); 
} 
var x=xmlDoc.getElementsByTagName("car"); 
for (i=0;i<x.length;i++) 
{ 
    if(x[i].getAttribute('id')=='1') 
    { 
     alert(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue); 
    } 
} 

小提琴http://jsfiddle.net/BKazh/2/

+0

謝謝。這工作完美:-) – user1836712 2013-04-29 08:23:38

1

嘗試

var x= xmlDoc.getElementsByTagName("car")[0].getElementsByTagName("name")[0].childNodes[0].nodeValue; 

http://jsfiddle.net/BKazh/4/

+0

如果'car id =「1」'在'第二個索引'上怎麼辦? – 2013-04-29 09:28:18