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

时间:2011-05-12 17:22:02

标签: javascript jquery

我认为这样可行:

if ($(this).attr('checked')) {}

但我必须这样写:

if ($(this).is(':checked')) {}
问:为什么?

4 个答案:

答案 0 :(得分:7)

当您请求检查attr时,您没有得到布尔值:

// this would be correct
if($(this).attr('checked') == 'checked')

// jQuery 1.6+
if($(this).prop('checked'))

答案 1 :(得分:2)

最近经历过这个,取决于你使用的是什么版本的jQuery。从1.6开始,具有本机属性的attr的功能(例如“已检查”,“已禁用”) - 属性是应该存在或不存在的属性 - 已更改,因为它们可能会返回不一致的结果,具体取决于浏览器行为。

在1.6中设置或测试属性的正确方法是使用新的prop函数,它始终返回true或false。您使用的第二种方法也可以测试。

答案 2 :(得分:2)

答案 3 :(得分:1)

更好的是,只需使用this.checked,它返回“true”或“false”。如果您已经拥有DOM节点,则无需使用jQuery。

相关问题