0

在我的复选框中,我正在向元素添加一个类,同时我正在将值推送到数组中。当用户再次单击元素时,我正在从数组中删除类名和值。我使用了以下函数:

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
                })

有什么问题?任何帮助将不胜感激。

4

3 回答 3

2

如果您仍在寻找 jQuery 解决方案,那么就在这里,只需更新您的else块:

sv = $.grep(sv, function (value) {
   return value != elementValue;
});

(JSFiddle:http: //jsfiddle.net/PKCES/

jQuery 文档:http ://api.jquery.com/jQuery.grep/

于 2013-06-27T06:19:35.610 回答
1

在你的else条款中这样做

var index = sv.indexOf(elementValue);
sv.splice(index, 1);
于 2013-06-27T06:16:57.560 回答
0
...
} else{
    sv.splice( $.inArray(elementValue, sv), 1 );
    console.log("remove");//works..
}
...
于 2013-06-27T06:15:18.697 回答