jQuery eq()选择太多元素

时间:2019-01-02 19:40:28

标签: javascript jquery html removechild

我要根据用户单击的关闭按钮删除一个div,所以我使用的是eq(),问题是,例如,用户单击eq(0),第一个会说一些(如预期的那样) ),但第二个div也被认为是eq(0)和一些。就好像我关闭了div eq(0)一样,其他两个div也关闭了,就好像它们是eq(0)一样,但这一切都只需要点击div eq(0)就可以了。只有一个,我已经尝试过使用stopImmediatePropagation(),但是当我关闭一个div时,它会关闭所有上述内容,而当我不使用它时,它们都将关闭!有人知道是什么问题吗?

以下是eq()代码的示例:

$('.' + tabHistoryBtn).click(function() { //close button
            var index = $(this).index();
            if(index == 0){
                $('.' + currentDivTabBarContent).eq(0).remove(); //content to remove
                $('.' + tabHistory).eq(0).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("1");
            }
            if(index == 1){
                $('.' + currentDivTabBarContent).eq(1).remove();
                $('.' + tabHistory).eq(1).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("2");
            }
            if(index == 2){
                $('.' + currentDivTabBarContent).eq(2).remove();
                $('.' + tabHistory).eq(2).remove();
                if(currentbtn == "home"){
                    countContentHome = countContentHome -1;
                }if(currentbtn == "explore"){
                    countContentExplore = countContentExplore -1;
                }
                alert("3");
            }
});

这是Jsfiddle,其中包含完整的代码:http://jsfiddle.net/willianjohns/w5eLs8d4/16/

1 个答案:

答案 0 :(得分:1)

var index = $(this).index();始终返回0。将其替换为$('.' + tabHistoryBtn).index(this)将达到您的期望。

http://api.jquery.com/index有关如何使用$ .index()的更多信息