我创建了一个简单的按钮,可以将按钮的值添加到数组中,然后再次单击时将其删除。
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
任何想法,我的方法是否错误?
答案 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);
}
});
unshift()方法将一个或多个元素添加到一个开头 array并返回数组的新长度。