2013-04-29 153 views
0
var xmlTst='<Tests> 
       <Test> 
        <Id>123</Id> 
        <Name>AAA</Name> 
       </Test> 
       <Test> 
        <Id>456</Id> 
        <Name>BBB</Name> 
       </Test> 
      </Tests>'; 

$("Test>Id[text=" + 123+ "]", xmlTst).parent(); 

上面的選擇器在IE中選擇上述xml的第一個節點。這在Chrome中不起作用。如何使用jquery獲取基於子節點值的節點

請幫我解決這個問題。

+0

是否使用[':包含()'](http://api.jquery.com/contains-selector/)工作? – Wrikken 2013-04-29 19:33:26

+1

包含對我不起作用,因爲如果ID是123456,它會返回多個結果。 – Pradeep 2013-04-29 19:40:41

回答

1

你開始和結束標記不匹配,但無論如何:

var xml = $.parseXML(xmlTst); 

$('Test > Id', xml).filter(function() { 
    return $.trim($(this).text()) == '123'; 
}).parent(); 
+0

如果我有另一個Id 123456節點會怎麼樣?它是否只返回一個或多個記錄? – Pradeep 2013-04-29 19:42:24

+0

這將返回多個。編輯答案。 – adeneo 2013-04-29 19:54:09

+0

請將!=改爲==。 – Pradeep 2013-04-29 20:16:04