2011-01-29 14 views
1

私はそれを修正するために私の最善の努力を働いていないjQueryセレクタを持っています。何かアドバイス?複数の属性を持つjQueryのチェックボックスセレクタ

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

がまだ確認されていない場合には、チェックボックスをチェックして無効にする必要があり、name属性= 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())のようです。


EDIT:

はちょうど私がquerySelectorAllのためのあなたの選択が有効にするために[type=checkbox]:checkboxセレクタを交換していたことに注意したいです。

qsaをサポートするブラウザでは、パフォーマンスが大幅に向上します。

関連する問題