Gau*_*rav 34 html javascript checkbox jquery
我有一个带有复选框和一些文本的列表(如电子邮件的收件箱).当我单击列表项(行)上的任意位置时,我想检查/取消选中该复选框.我在行的click事件上使用了以下代码:
$(this).find(".cbx input").attr('checked', true);
Run Code Online (Sandbox Code Playgroud)
这是第一次显示选中的复选框.但是当我点击下一次选中它时,复选框的值="已检查"html代码中的更新(我通过firebug检查),但复选框未显示为已选中.
Uwe*_*weB 89
随着.attr()你设置的DOM树属性的值.根据浏览器,浏览器版本和jQuery版本(尤其是1.6),这并不总是具有所需的效果.
使用.prop(),你操纵属性(在这种情况下,'检查状态').我强烈建议您使用.prop(),因此以下内容将正确切换:
$(this).find(".cbx input").prop('checked', true);
Run Code Online (Sandbox Code Playgroud)
几乎是正确的,只需使用'checked'而不是true:
$(this).find(".cbx input").attr('checked', 'checked');
Run Code Online (Sandbox Code Playgroud)
更新:或者,您可以在较新的JQuery版本中使用它:
$(this).find(".cbx input").prop('checked', true);
Run Code Online (Sandbox Code Playgroud)