2011-09-26 144 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

相关问题