关于attr() 和 prop() 的区别
在我们用jQuery来写代码的项目中,会经常用到要给元素设置属性的时候,而通常我们也是用attr()和prop()方法;但是attr()和prop()是有区别。
1、对于 HTML 元素本身就带有的固有属性,在处理时,使用 prop 方法。
prop()函数的结果:
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是空字符串。
例如:
<a href="https://www.runoob.com" target="_self" class="btn">例子1</a>
这个例子里 < a > 元素的 DOM 属性有: href、target 和 class,这些属性就是 < a > 元素本身就带有的属性,也是 W3C 标准里就包含有这几个属性,或者说在 IDE 里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用 prop 方法。
比喻:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()。
2、对于 HTML 元素我们自己自定义的 DOM 属性,在处理时,使用 attr 方法。
attr()函数的结果:
1.如果有相应的属性,返回指定属性值。
2.如果没有相应的属性,返回值是 undefined。
例如:
<a href="#" id="link1" action="delete" rel="nofollow">删除</a>
这个例子里 < a > 元素的 DOM 属性有: href、id 和 action,很明显,前两个是固有属性,而后面一个 action 属性是我们自己自定义上去的,< a > 元素本身是没有这个属性的。这种就是自定义的 DOM 属性。处理这些属性时,建议使用 attr 方法。
清楚两者之间的区别,才能更好解决问题,避免花费过多时间。