繁体   English   中英

如何检查复选框是否被选中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM