jQuery中attr与prop的区别

简单的来说:

  • 对于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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容