2011-09-26 86 views
1

在HTML中,我創建了一個具有唯一ID的「div」。在這個「div」中,我有更多的「div」,其中每個都包含一個字符串。例如:jquery:找到包含給定字符串的元素的索引

<div id="name"> 
    <div>A</div> 
    <div>B</div> 
</div> 

我想要做的是找到一個包含字符串「格」的指標,比如「A」,將「格」使用id =「名」之內。

我認爲選擇器「:contains」應該與.index()結合使用,但我無法弄清楚正確的語法。這是我已經試過:

var index = $("#name"):contains(A).index("div"); 

回答

2

試試這個

var index = $("#name>div:contains(A)").eq(0).index(); 

http://jsfiddle.net/GhPxD/1/

+0

是的,它現在的作品,謝謝!但不知何故,當我在使用jquery accordion開發的網頁上使用它時,我獲得了雙倍的價值。我將由2返回的值作爲臨時解決方案。 – yongtw123

+0

用'eq(0)'試一下,如果這不起作用,請確保它不是由手風琴插件創建的額外元素引起的。 –

4

我想你想

var index = $('#name div:contains("A")').index(); 

這將找到ID =名稱的元素中選擇div:contains('A')匹配的元素。

正如您現在可能已經做出的那樣,選擇器前綴爲:的選擇器將用於選擇器字符串中。許多人有相應的jQuery函數可以鏈接(例如:eq().eq),但:contains()不會(函數.contains()測試其他元素內的DOM元素,而不是查看文本)。

+0

我嘗試使用的jsfiddle的解決方案,但得到-1。 http://jsfiddle.net/GhPxD/16/ – yongtw123

+0

呃,你是對的 - '.index()'看起來在當前數組中,而不是在兒童中。 @ilia有正確的答案,所以我也在更新我的作品。 – nrabinowitz

相關問題