2010-08-16 6 views
2

이 :여러 선택기 JQuery와

$('input.people').attr('checked', false).filter('[name=toddS]').attr('checked', true); 

사람들과 다른 모든 상자의 선택을 취소하면서 이름 toddS의 클래스 체크 박스를 선택합니다.

필터에 다른 이름을 어떻게 추가합니까? 여러 조합을 시도했지만 아무 것도 작동하지 않습니다.

$('input.people').attr('checked', false).filter('[name=toddS], [name=gwenD]').attr('checked', true); 

답변

0

당신은 use a function there 만 원하는 사람을 선택 할 수 : 이것은 내가 가지고있는 것입니다.

$('input.people') 
    .removeAttr('checked') 
    .filter(function() { 
     return ($(this).attr('name') === 'toddS' || $(this).attr('name') === 'gwenD'); 
    }) 
    .attr('checked', 'checked'); 

내가 대신 false로 설정의 removeAttr()을 사용했다. jQuery가 false으로 설정되어 있는지 확인하지 않았지만 HTML 관점에서 선택하지 않으면 해당 속성이 없다는 것을 의미합니다.

1

이 같은 .attr()에 함수를 전달할 수 있습니다

$('input.people').attr('checked', function() { 
    return this.name == 'toddS' || this.name == 'gwenD'; 
}); 

나중에 더 추가해야하는 경우,이 같은 예를 $.inArray() 더 많은 값을 작동 뭔가, 사용할 수 있습니다

$('input.people').attr('checked', function() { 
    return $.inArray(this.name, ['toddS', 'gwenD']) != -1; 
}); 
+0

예; 이 대안으로 의도가 훨씬 명확 해집니다. – strager

+0

고마워, 닉. 이제 Todd와 Gwen의 직위가 선택되지 않은 경우이를 취소하려면 어떻게해야합니까? –

+0

@ sehummel65 - 조금 더 명확히 해 주시겠습니까? 나는 그 질문을 이해하지 못한다 ... 당신은 반대를 원한다, 또는 모든 사람의 선택을 취소하거나 ...? –