2011-01-29 9 views
1

jQuery 선택기가있어 문제를 해결하기 위해 최선의 노력을 기울이지 않습니다. 어떤 충고? 그것은 확인하고 아직 선택되어 있지 않은 경우 체크 박스를 해제해야합니다다중 속성이있는 jQuery 선택기 선택기

  $(':checkbox:(not(:checked))[name=this.name][value="Done"]').attr({ 
       checked: 'checked', 
       disabled: 'disabled' 
      }); 

는 this.name 이름 속성 = 및 완료의 값을 갖는다.

나는 그걸로 주변을 둘러 보았습니다 http://jsfiddle.net/PottyMonster/s8RMJ/ 그래도 그게 효과가 있다면 모르겠어.

답변

1

이 그것을 수행해야합니다

$('input[name=' + this.name + '][value=Done][type=checkbox]:not(:checked)').attr({ 
    checked: 'checked', 
    disabled: 'disabled' 
}); 

업데이트 예 :http://jsfiddle.net/s8RMJ/22/

을 당신은 선택에 this.name의 값을 연결해야합니다.

선택자에게도 input을 더 빨리 추가했습니다.

또한 :not() 주위에 ()이 있었으므로 :(not())이 유효하지 않습니다.


편집 :

그냥 내가 querySelectorAll에 대한 당신의 선택이 유효하게하기 위해 [type=checkbox]으로 :checkbox 선택을 교체 한 점에 유의하고 싶었다.

이제는 qsa을 지원하는 브라우저에서 성능이 크게 향상 될 것입니다.