2010-04-20 55 views
0

如何選擇子標籤鍵的文本以'001'開頭的項目?jquery xml select

<root> 
    <item> 
     <key>001001</key> 
     <text>thanks</text> 
    </item> 
    <item> 
     <key>001002</key> 
     <text>very</text> 
    </item> 
    <item> 
     <key>002001</key> 
     <text>much</text> 
    </item> 
</root> 



$(xml).find("item>[filter string]").each(function() 
{ 
    alert(this); 
}); 
+0

你控制XML架構?提升孩子的屬性可能會更好('')。如果在''之下還有更多的話,即使只是'鑰匙'。 – 2010-04-20 02:38:19

+0

謝謝,這是一個很好的建議。 – 2010-04-20 03:20:55

回答

1

你在這種情況下,需要.filter()

$(xml).find("item").filter(function() { 
    return $(this).find("key").text().indexOf('001') === 0; 
}).each(function() { 
    alert(this); 
}); 

這由那些誰的文字與001開始的一個關鍵要素篩選的項目。如果你可以根本修改模式,這將會快得多......如果你處理很多項目,搜索兒童過濾器總的來說有點貴。

Jake的意見建議是一個很好的,如果它是一個選項,如果一個項目有屬性,而不是內部元素,你可以做到這一點與attribute starts-with selector更加簡單,像這樣:

$(xml).find("item[key^=001]").each(function() { alert(this); });