2011-08-31 116 views
2

我有一個xml,我想要搜索「相似」結果,類似於LIKE在SQL中所做的。 我想過要做點像$(xml).find('regexHere'),但我不知道該怎麼做。 如果這不是最好的方法,你能推薦別的嗎?我需要搜索的數據在節點的參數內。如何使用正則表達式作爲參數使用jQuery的.find方法?

編輯

$(xml).find('[cityName=Rio de Janeiro]')給我到底我在尋找的節點,因爲它是完全一樣的字符串。但是,如果我搜索Rio我沒有得到任何結果,即使節點Rio de Janeiro和Rio Claro有我正在尋找的字符串。

我嘗試使用$(xml).find('[cityName|="Rio"]')沒有運氣,沒有一個單一的結果出現,但如果我改變爲Rio de Janeiro我正是我所需要的。

+1

您是否只需要從該節點內部或DOM樹的分支中獲取一些文本? –

+0

理想情況下,xml節點。我會在問題中添加一些代碼,以澄清一點。 –

+1

如果你正在用這種方式處理,我認爲你正在尋找'[cityName * = rio]'。 –

回答

3

要查找具有匹配一定的正則表達式的屬性的所有元素,你可以使用.find("*")選擇所有元素,然後.filter(...),以消除任何不匹配:

例如,要查找其message所有節點屬性包含「hello world」:

var elements = $(xml).find("*").filter(function() { 
    return /[Hh]ello [Ww]orld/.test($(this).attr("message")); 
}); 
+0

謝謝!這是直截了當的問題,但我結束了使用@Bill Criswell在評論中給出的解決方案。 –

2

您可以用逗號分隔選擇器,也可以使用.contents().filter()