使用jquery预设html tickbox

Sta*_*ers 1 javascript checkbox jquery

这段代码,

$("#x").removeAttr("checked").removeAttr("unchecked").attr("foo","bar");
Run Code Online (Sandbox Code Playgroud)

结果在这个html输入中:

<input type="checkbox" id="x" foo="bar">
Run Code Online (Sandbox Code Playgroud)

但是这个:

$("#x").removeAttr("checked").removeAttr("unchecked").attr("checked","true");
Run Code Online (Sandbox Code Playgroud)

结果如下:

<input type="checkbox" id="x" checked="checked">
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?尽管使用了checked ="checked"属性,该复选框仍然未经检查.

切换HTML输入的checked属性的最佳方法是什么?

Yot*_*mer 5

要切换选中的使用.prop()而不是.attr():

$('#x').prop('checked',true);
$('#x').prop('checked',false);
Run Code Online (Sandbox Code Playgroud)

如果您想要另一个按钮来切换复选框,您可以使用:

var $x  = $('#x'); // don't query every click - Credit: Roko :) 
$('.button').click(function(){      
    $x.prop('checked', !$x.is(':checked'));
})
Run Code Online (Sandbox Code Playgroud)