我有一个看起来像这样的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错误。
我在这里缺少什么?谢谢!
答案 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());