2013-06-27 2 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 
       }) 

문제 란 어떤 도움을 이해할 수있을 것이다?. 당신은 여전히 ​​여기가 바로 업데이트됩니다 jQuery를 솔루션을 찾고 경우 else 절에서

+0

'else'블록에 문제가있을 수 있습니다. '$ .grep' 설명 : "필터 함수를 만족하는 배열 요소를 찾습니다. 원래 배열은 영향을받지 않습니다." – Cherniv

+0

다음 내 토글 senario 제거하는 방법은 무엇입니까 .. – 3gwebtrain

+0

내 대답 – Cherniv

답변

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

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

체크 아웃이 작업은 값이 인덱스 중 하나에 존재하거나 색인 번호 1에서만 작동합니까? – 3gwebtrain

+0

0이면 모든 색인에서 작동합니다. http://jsfiddle.net/qJ5ns/ –

관련 문제