2013-06-27 2 views
1

제 양식에서 배열의 존재를 기반으로하는 두 가지 다양한 클래스를 적용해야합니다. ,jquery jQuery 배열 값에서 요소를 필터링하는 방법

<form> 

    <input type="checkbox" value="one" /> 
    <input type="checkbox" value="two" /> 
    <input type="checkbox" value="three" /> 
    <input type="checkbox" value="four" /> 
    <input type="checkbox" value="five" /> 

</form> 

var names = ["one","two","three"]; 


$(":checkbox", "form").filter(function(){ 
    return $(this).val() === names 
}).addClass("blue") 

$(":checkbox", "form").filter(function(){ 
    return $(this).val() !== names 
}).addClass("green") 

하지만 작품 .. 어떤 올바른 방법이

here is the fiddle

당신은 입력 값이 배열에 존재하는지 여부를 확인해야

답변

2

수행하려면 :

이 내 시도이다 배열 이름이 아닌 값은 값과 같습니다. Fiddle

또는

var names = ["one","two","three"]; 

$("form :checkbox").addClass(function(){ 
    return $.inArray(this.value, names) > -1 ? 'blue' : 'green' 
}) 

데모 : Fiddle 당신이 $.inArray을 사용할 수 있다는 것이 다른 배열 -1

$("form :checkbox").filter(function(){ 
    return $.inArray(this.value, names) > -1 
}).addClass("blue") 

$("form :checkbox").filter(function(){ 
    return $.inArray(this.value, names) == -1 
}).addClass("green") 

데모에서 그것을 발견하면, 그것은 항목의 인덱스를 반환합니다

+0

녹색은 어떨까요? – 3gwebtrain

+0

@downvoter 설명해 주셔서 감사합니다 !!!!! –

+0

은 downvote하지 않았지만'names.indexOf (this.value)'를 사용하지 않는 이유는 무엇입니까? –

관련 문제