3

最新バージョンのjquery(1.7.1)にアップグレードした後、次のコードが評価されなくなったことに気づきました

if( $('#item').attr('checked') === true ){
    //do something
}

なぜ彼らがこの変更を行ったのかは理解できますが、なぜ彼らがこれを行ったのかについてのドキュメントへのリンクはありますか?コードが正しく機能することを確認したいのですが、上記をかなり長い間間違って使用している可能性があります。

4

3 に答える 3

4

むしろ使用する

if( $('#item').is(':checked')){
    //do something
}
于 2012-04-19T15:20:12.163 に答える
4

.isチェックボックスがオンになっているかどうかを確認するために使用します。下記参照、

if( $('#item').is(':checked')){
..

編集:

私の知る限り、jQuery$('#item').attr('checked')がtrueを返すことはありません。checkedまたはを返しますundefined

ケビンが指摘したように、

1.6以降の.attr('checked')は、文字列を適切に返します(すべての属性は文字列です)。ブールプロパティが必要な場合は、新しい.prop()メソッドを使用します

を比較する場合はtrue、を使用しますthis.checked。以下を参照してください。<-this.checkedこれは他のどの方法よりも高速であるため、使用することをお勧めします。

if (this.checked === true) {
..

また

.prop以下のように使用してください、デモ

if($(this).prop('checked') === true) {
..

デモ

于 2012-04-19T15:20:20.027 に答える
1

たとえば、すべてのブラウザにはチェックを行う独自の方法があるため、機能していません。

チェック済み、checked = "checked"、checked="true"。

したがって、属性の代わりにセレクター:checkedを使用する必要があります。そしてjQueryはすべてのブラウザを処理します:)

于 2012-04-19T15:23:25.353 に答える