在我的复选框中,我向元素添加了一个类,同时我将值推送到数组。当用户再次单击该元素时,我将从数组中删除类名和值。我使用了以下函数:
var sv = [];
$(userLocales).click(function(){
$(this).parent().toggleClass("red");
var elementValue = $(this).val();
if($.inArray(elementValue, sv) === -1 ){
sv.push(elementValue)
console.log("add");//works
} else{
$.grep(sv, function (value) {
return value != elementValue;
});
console.log("remove");//works..
}
console.log(sv);//always getting the value
})
问题是什么?我们将不胜感激。
答案 0 :(得分:2)
如果您仍然在寻找jQuery解决方案,那么只需更新您的else
块:
sv = $.grep(sv, function (value) {
return value != elementValue;
});
(JSFiddle:http://jsfiddle.net/PKCES/)
jQuery文档:http://api.jquery.com/jQuery.grep/
答案 1 :(得分:1)
在else
子句中执行此操作
var index = sv.indexOf(elementValue);
sv.splice(index, 1);
答案 2 :(得分:0)
...
} else{
sv.splice( $.inArray(elementValue, sv), 1 );
console.log("remove");//works..
}
...