39

チェックボックスといくつかのテキスト(メールの受信トレイなど)を含むリストがあります。リストアイテム(行)のどこかをクリックしたときにチェックボックスをオン/オフしたい。行のクリックイベントで次のコードを使用しました:

$(this).find(".cbx input").attr('checked', true);

初めて、チェックボックスが表示されます。しかし、次回クリックすると、チェックボックスの値が更新されますchecked = "checked"がhtmlコードで更新されますが(firebugでチェックしました)、チェックボックスはチェック済みとして表示されません。

4

7 に答える 7

99

.attr()DOM ツリーで属性の値を設定します。ブラウザー、ブラウザーのバージョン、および jQuery のバージョン (特に 1.6) によっては、これが常に望ましい効果をもたらすとは限りません。

では.prop()、プロパティを操作します (この場合は「チェック状態」)。あなたのケースで使用することを強くお勧めし.prop()ます。そのため、以下が正しく切り替わります。

$(this).find(".cbx input").prop('checked', true);

詳細については、 .prop() のドキュメントを参照してください。

于 2013-08-07T08:10:42.503 に答える
9

true の代わりに 'checked' を使用するだけです。

$(this).find(".cbx input").attr('checked', 'checked');

更新: または、これを新しい JQuery バージョンで使用することもできます。

$(this).find(".cbx input").prop('checked', true);
于 2013-08-07T08:06:10.180 に答える
1

mozillaでは問題なく動作していましたが、最初はchromeでは何も機能しませんでした。後で、カスタム CSS スタイルが原因でチェックマークが表示されないことがわかりました。

于 2015-08-20T15:27:05.280 に答える
0
useing **.prop()** it worked for me !

$(document).on("click",".first-table tr",function(e){
if($(this).find('input:checkbox:first').is(':checked'))
{
    $(this).find('input:checkbox:first').prop('checked',false);
}else
{
    $(this).find('input:checkbox:first').prop('checked', true);
}
});
于 2015-06-04T14:09:51.163 に答える
-1
 $("[id*='" + value + "'] input").prop('checked', false);

attrも機能しました(ただし、初めてのみ)しかし、prop常に機能します。

于 2015-01-08T15:14:44.630 に答える