简单的来说:
- 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
- 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
举个栗子:
<a href="http://www.baidu.com" target="_self" class="btn">百度</a>
在这个<a>
里面,href
,target
,class
,是<a>
默认自带的元素,也就是说w3c
标准里面包含的属性,这些叫做固有属性,处理这些属性的时候,建议使用prop
方法
现在我们给<a>
加一个id
属性:
<a href="http://www.baidu.com" target="_self" class="btn" id="my-link">百度</a>
这个里面的id
是我们认为给加上去的,所以认为不是固有属性,是我们自定义的DOM属性,处理这些时,建议使用attr
方法
<font color=#A52A2A>这里如果使用prop
的时候,都会返回undefined
</font>
应用场景:
比较常见的应用prop
替换attr
的场景是在操作checkbox
的时候,坑过一代人
<input type="checkbox" id='my-check'>check
此时:
$('#my-check').prop('checked')
为 true
或者false
如果:
$('#my-check').attr('checked')
返回值则为undefined
或者checked
done