Jquery Unshift / Unset数组项

时间:2014-10-14 10:55:31

标签: javascript jquery

我创建了一个简单的按钮,可以将按钮的值添加到数组中,然后再次单击时将其删除。

        var inviteList = [];

        $('.invite').click(function(event) {

            if($(this).hasClass('btn-success')){
                inviteList.unshift($(this).data('client'));
                $(this).removeClass("btn-success");
                console.log('removing');
            }else{
                inviteList.push($(this).data('client'));
                $(this).addClass("btn-success");
                console.log(inviteList);
            }

        });

问题是物品没有被移除但是它们正在被触发。

的console.log

[22] 
removing videos
[22, 22, 22] 
removing videos:311
[22, 22, 22, 22, 22] 
removing videos
[22, 22, 22, 22, 22, 22, 22] 
removing videos

任何想法,我的方法是否错误?

1 个答案:

答案 0 :(得分:2)

您需要找到该项目的索引,然后将其删除

var inviteList = [];

$('.invite').click(function (event) {

    if ($(this).hasClass('btn-success')) {
        var index = inviteList.indexOf($(this).data('client'));
        inviteList.splice(index, 1);
        $(this).removeClass("btn-success");
        console.log('removing');

    } else {
        inviteList.push($(this).data('client'));
        $(this).addClass("btn-success");
        console.log(inviteList);
    }

});

Array.unshift()

  

unshift()方法将一个或多个元素添加到一个开头   array并返回数组的新长度。