2013-06-27 97 views
0

在我的複選框中,我將一個類添加到元素,同時我將值推到數組。當用戶再次點擊該元素,我刪除類名,並從array.I值使用了以下功能:Jquery數組切換值不正確

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

可能是問題出在'else'塊中。從'$ .grep'描述:「查找滿足過濾器函數的數組元素,原始數組不受影響。」 – Cherniv

+0

然後有什麼辦法刪除我的切換senario .. – 3gwebtrain

+0

檢查我的回答 – Cherniv

回答

0
... 
} else{ 
    sv.splice($.inArray(elementValue, sv), 1); 
    console.log("remove");//works.. 
} 
... 
1

在你else條款做到這一點

var index = sv.indexOf(elementValue); 
sv.splice(index, 1); 
+0

將這項工作,價值存在於任何索引或只工作索引1號..? – 3gwebtrain

+0

它可以在任何索引上工作,即使是0. http://jsfiddle.net/qJ5ns/ –