Jquery兼容性checked失效

发布于 2016-02-15 作者 [重庆SEO]

我对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()的区别,可查看后面的参考资料。