我正在使用$(this).removeattr('disabled')
从复选框中删除已检查的属性,但它在chrome中不起作用。任何人都可以帮助我吗?
我还尝试过其他一些解决方案,比如 -
1)$(this).prop('checked', false)
2)$(this).removeAttr('checked')
3)$(this).attr('checked', false)
提前致谢。
答案 0 :(得分:0)
首先,您需要了解"attr"
和"prop"
Here's a user's answer,主要部分是:
我将总结主要问题:
- 您通常需要
prop()
而不是attr()
。- 在大多数情况下,
prop()
执行attr()
过去所做的事情。通常会在代码中用attr()
替换prop()
的来电 工作- 属性通常比属性更容易处理。属性值可以只是一个字符串,而属性可以是任何属性 类型。例如,
checked
属性是布尔值,style
property是一个对象,每个样式都有各自的属性size
属性是一个数字。- 如果属性和具有相同名称的属性都存在,通常更新一个将更新另一个,但事实并非如此 对于某些输入属性,例如
value
和checked
:for 这些属性,属性始终表示当前状态 而属性(旧版本的IE除外)对应于 输入的默认值/检查(反映在defaultValue
/defaultChecked
财产)。- 此更改删除了一些在属性和属性前面停留的魔法jQuery层,这意味着jQuery开发人员将不得不这样做 了解一下属性和属性之间的区别。 这是件好事。
现在没有名为"removeattr"
的函数,它应该是"removeAttr"
,如果您使用旧版本的jquery(即< 1.5),这将起作用。
由于checked
是元素的属性,因此安全且正确可以使用.prop("checked",false)
在所有浏览器中使用。
Another answer更加实用:
jQuery 1.6 +
使用新的
.prop()
方法:$('.myCheckbox').prop('checked', true); $('.myCheckbox').prop('checked', false);
jQuery 1.5.x及以下
.prop()
方法不可用,因此您需要使用.attr()
$('.myCheckbox').attr('checked', true); $('.myCheckbox').attr('checked', false);
请注意,这是the approach used by jQuery's unit tests prior to version 1.6,并且优于使用
$('.myCheckbox').removeAttr('checked');