获取DOM中所有匹配元素的当前元素的索引

时间:2011-10-11 08:16:49

标签: jquery indexing

我有一个看起来像这样的DOM结构:

<div class="chapter">
   <section></section>
   <section></section>
</div>
<div class="chapter">
   <section></section>
   <section></section>
   <section class="current"></section>
   <section></section>
</div>
<div class="chapter">
   <section></section>
   <section></section>
   <section></section>
   <section></section>
</div>

我希望在所有部分中获得具有“当前”类的部分的索引号。在这个例子中,索引将是5,因为它是第5节标记并包含一类当前。

如何使用jQuery获取此功能?

我已经开始使用它来获取dom中所有部分的列表:

var sections = $('section');

我尝试过这样的事情来尝试获得我想要的结果:

alert($(sections+'.current').index());

返回js错误。

我在这里缺少什么?谢谢!

3 个答案:

答案 0 :(得分:13)

在您的代码中$('section')会将所有部分作为jquery对象返回给您。其中要获取具有current类的部分的索引,您可以执行此操作:

sections.index($(".current"));

这将返回带有类current的节的相对索引,该值为4 $('sections')会返回一个jQuery对象Array(0索引),其中包含所有section元素。所以匹配的元素是第5个元素,索引将返回4。 希望这个fiddle有所帮助。

答案 1 :(得分:6)

$('.current').index('section');

请参阅index上的文档。

  

如果选择器字符串作为参数传递,则.index()返回一个整数,指示原始元素相对于选择器匹配的元素的位置。如果找不到该元素,.index()将返回-1。

答案 2 :(得分:0)

像这样改变

var sections = 'section';

您的代码正在执行此操作并且错误

alert($($('section')+'.current').index());