index获取的值为-1是为什么


$(function () {
            //点击上面的li当前li添加current类,其他li删除current类
            $(".tab_list li").click(function () {
                $(this).addClass("current").siblings().removeClass("current");
            })
            //点击同时获取li的索引号
            var index = $(this).index();


            // console.log(index);
            $(".tab_con .item").eq(index).show().siblings().hide();
        })

-1应该是找不到

 
$(function () {
            //点击上面的li当前li添加current类,其他li删除current类
            $(".tab_list li").click(function () {
                $(this).addClass("current").siblings().removeClass("current");

                //点击同时获取li的索引号
                var index = $(this).index();
  
                // console.log(index);
                $(".tab_con .item").eq(index).show().siblings().hide();
            })   ///////////////////////////////
        })

【以下回答由 GPT 生成】

问题在于var index = $(this).index();这一行代码放在了错误的位置。$(this).index()是用来获取点击的li在其兄弟元素中的索引号,但是它是在点击之外的地方进行调用的,所以index的值为-1,表示没有找到匹配的元素。

为了修复这个问题,可以将获取index的代码放在点击事件的回调函数中。修改后的代码如下:

$(function () {
    //点击上面的li当前li添加current类,其他li删除current类
    $(".tab_list li").click(function () {
        $(this).addClass("current").siblings().removeClass("current");
        var index = $(this).index();
        $(".tab_con .item").eq(index).show().siblings().hide();
    })
})

这样,在点击li时,先添加/删除类名,然后再获取index,并根据index显示相应的内容。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^