1

このコード、

$("#x").removeAttr("checked").removeAttr("unchecked").attr("foo","bar");

この HTML 入力の結果:

<input type="checkbox" id="x" foo="bar">

それでもこれ:

$("#x").removeAttr("checked").removeAttr("unchecked").attr("checked","true");

結果は次のようになります。

<input type="checkbox" id="x" checked="checked">

何が起こっている?この checked="checked" 属性にもかかわらず、チェックボックスは依然として頑固にチェックされていません。

HTML入力のchecked属性を切り替える最良の方法は何ですか?

4

3 に答える 3

5

.prop()の代わりに使用のチェックを切り替えるには.attr():

$('#x').prop('checked',true);
$('#x').prop('checked',false);

別のボタンでチェックボックスを切り替えたい場合は、次を使用できます。

var $x  = $('#x'); // don't query every click - Credit: Roko :) 
$('.button').click(function(){      
    $x.prop('checked', !$x.is(':checked'));
})
于 2013-07-28T23:54:03.567 に答える
0
$('#x')[0].checked = true; // true / false

http://jsbin.com/ivufen/1/edit

トグル:

var $cbx = $('#x')[0];

$('#toggle').click(function(){
  $cbx.checked = !$cbx.checked;
});

http://jsbin.com/ivufen/3/edit

于 2013-07-28T23:59:07.163 に答える