Jquery 中使用radio 和checkbox时。有个问题,如果使用attr方法,会出现一种情况,就是连续点击几次就会出现显示状态与实际checked值不符的状态。比如看上去没有选中,但实际值是checked。
这个其实属于attr方法的一个bug。Jquery 1.6+ 之后新加入了一个prop方法。使用方式与attr一样。但是上述情况使用attr则不会出现问题。
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。
谈一下个人看法:
- 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
- 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
<a href="#aaa" id="link" action="select">删除</a>
这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。