我想知道如何在以下无序列表中返回带有“ currentTab”类的列表元素的位置:

<ul id="coverTabs">
    <li class="currentTab"><a href="#">Individual</a></li>
    <li><a href="#">Couple</a></li>
    <li><a href="#">Family</a></li>
    <li><a href="#">Single parent family</a></li>
</ul>


该类在HTML中设置为启动。下面将单击的选项卡设置为“ currentTab”,然后删除上一个类:

$('ul#coverTabs > li').live('click', function() {

    // Clickable tabs
    // Removes default class applied in HTML and onClick adds 'currentTab' class
    $(".currentTab").removeClass("currentTab");
    $(this).addClass("currentTab");

});


我以为,如果我在上面添加以下内容,它将返回当前可以使用的选项卡的位置:

    // Find the active tab
    var tabPosition = $('ul#coverTabs > li.currentTab').index ($('.currentTab'));
    var tabPosition = tabPosition + 1


它似乎对我不起作用。

最佳答案

引用当前项目时,请使用this关键字。

var tabPosition = $('ul#coverTabs > li').index ($(this));


尽管您遇到的问题是您限制了currentTab中的索引,所以您只选择了一个..

var tabPosition = $('ul#coverTabs > li').index ($('.currentTab'));


以上应该也可以工作(注意,我已经从第一个选择器中删除了.currentTab

07-24 20:35