Jquery兼容性checked失效
发布于 分类 Jquery
10天前 有1个用户阅读过
我对jquery不是很熟悉,只是偶尔使用下插件。然后对几个选择器进行操作,所以又遇到问题了。
更新了某个基于jquery的插件后,被迫从jquery1.8.x升级到jquery 1.11.x,有个关于checkbox选中的功能失常了。
网上解决方案:
jquery判断checked的三种方法:
.attr('checked'): //看版本1.6+返回:"checked"或"undefined" ;1.5-返回:true或false
.prop('checked'): //16+:true/false
.is(':checked'): //所有版本:true/false//别忘记冒号哦
在jQuery中,prop()函数的设计目标是用于设置或获取指定DOM元素(指的是JS对象,Element类型)上的属性(property);attr()函数的设计目标是用于设置或获取指定DOM元素所对应的文档节点上的属性(attribute)。
jQuery认为:attribute的checked、selected、disabled就是表示该属性初始状态的值,property的checked、selected、disabled才表示该属性实时状态的值(值为true或false)。
因此,在jQuery 1.6及以后版本中,请使用prop()函数来设置或获取checked、selected、disabled等属性。对于其它能够用prop()实现的操作,也尽量使用prop()函数。
如法炮制后,checkbox正常了。关于jQuery函数attr()和prop()的区别,可查看后面的参考资料。
-- The End --