[英]How do you check for whether a checkbox is checked or not checked?
我认为这可以工作:
if ($(this).attr('checked')) {}
但我必须这样写:
if ($(this).is(':checked')) {}
问:为什么?
当您请求检查attr时,没有得到布尔值:
// this would be correct
if($(this).attr('checked') == 'checked')
// jQuery 1.6+
if($(this).prop('checked'))
最近经历过此过程,这取决于您所使用的jQuery版本。 从1.6版本开始,具有本机属性(例如,“选中”,“禁用”)的attr
的功能发生了变化-属性是应该存在或不存在的属性-因为它们可能会根据浏览器的行为返回不一致的结果。
在1.6中设置或测试属性的正确方法是使用新的prop
函数,该函数始终返回true或false。 您使用的第二种方法也可以测试。
更好的是,只需使用this.checked
,它返回“ true”或“ false”。 无需使用jQuery,特别是如果您已经具有DOM节点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.