Jquery数组切换值无法正常工作

时间:2013-06-27 06:00:56

标签: jquery arrays

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

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

问题是什么?我们将不胜感激。

3 个答案:

答案 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..
}
...