2017-12-21 29 views
0

값에 따라 고유 한 확인란 값이 필요합니다. 나는 아마도 이러한 값을 가지고 클래스를 찾는 모든 체크 박스에 클래스를 추가 할 수 있지만 여전히 가치에만 초점을 맞추고 싶습니다. 너무 많은 중복 코드를 작성하지 않고 고유 한 값을 추가하는 방법이 있습니까?단일 입력 유형으로 여러 값을 타겟팅 할 수 있습니까?

var unique = $('.myclass input[type=checkbox][value=1], .myclass input[type=checkbox][value=3], .myclass input[type=checkbox][value=abc], .myclass input[type=checkbox][value=bca], .myclass input[type=checkbox][value=255], .myclass input[type=checkbox][value=abc123]'); 
unique.click(function() { 
    unique.filter(':checked').not(this).removeAttr('checked'); 
}); 

이 더 많은 코드를 가지고 있지만, 고유 값 배열이 계속 성장해야하는 경우이 같은 지저분한되지 않습니다 : 이것은 내가 가장 기본적인 형태로 원하는 것입니다.

var uniqueValues = ["1", "3", "abc", "bca", "255", "abc123"]; 
var uniqueArray = []; 
$.each(uniqueValues, function(index, value) { 
    uniqueArray.push('.myclass input[type=checkbox][value='+value+']'); 
}); 
var unique = $(uniqueArray.join(", ")); 
unique.click(function() { 
    unique.filter(':checked').not(this).removeAttr('checked'); 
}); 

위의 두 가지 예 중 하나와 같은 방법으로 해결할 수 있습니까?

var uniqueValues = ["1", "3", "abc", "bca", "255", "abc123"]; 
var unique = $('.myclass input[type=checkbox][value='+uniqueValues+']'); 
unique.click(function() { 
    unique.filter(':checked').not(this).removeAttr('checked'); 
}); 
+1

고유 값 추가 중? 수동으로 추가 하시겠습니까? 역동적으로? 사용자가? 다른 출처로? 이 코드는 명확하지 않습니다. – zer00ne

답변

1

아니요, 여러 특성 값을 한꺼번에 일치시키는 기본 제공 jQuery 선택기가 없습니다. 동일한 문자열로 시작하거나 끝나는 값을 일치시킬 수있는 접두어 및 접미어 선택자가 있지만 목록은 일치하지 않습니다.

대신, 당신은 당신이 원하는 사람을 선택 .filter()를 사용할 수 있습니다

var uniqueValues = ["1", "3", "abc", "bca", "255", "abc123"]; 
var unique = $(".myclass :checkbox").filter(function() { 
    return uniqueValues.indexOf(this.value) != -1; 
}); 
0

를 내가 제대로 질문을 이해하지만 여기 내 솔루션입니다했다 모르겠어요. 사용자가 체크 박스를 클릭 할 때마다 클릭 한 체크 박스 값이 객체로 존재하는 경우

var uniqueValues = ["1", "3", "abc", "bla"]; 
$(document).on('click', '.myClass input[type="checkbox"]', function(){ 
    if(uniqueValues.indexOf($(this).val()) != -1){ 
     //Run the click event 
    } 
}); 

기본적으로 코드를 확인하고 만약 그렇다면 그것은 클릭 이벤트를 실행합니다.