在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。
关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:
- 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
- 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
上面的描述也许有点模糊,举几个例子就知道了。
<a href="http://www.baidu.com" target="_self" class="btn">百度</a>
这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属 性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。
<a href="#" id="link1" action="delete">删除</a>
这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是 我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop 方法取值和设置属性值时,都会返回undefined值。
再举一个例子:
<input id="chk1" type="checkbox" />是否可见 <input id="chk2" type="checkbox" checked="checked" />是否可见
像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。
$("#chk1").prop("checked") == false $("#chk2").prop("checked") == true
如果上面使用attr方法,则会出现:
$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"
转自http://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html
相关推荐
本文将重点分析在火狐(Firefox)浏览器下,使用jQuery的prop和attr方法来设置checkbox选中状态的不同表现和解决方法。 首先,需要了解的是,在jQuery中,attr方法是用来获取或设置HTML属性的值,而prop方法则是...
在jQuery中,`prop()`和`attr()`方法都是用于处理元素的属性(attributes),但它们之间存在一些重要的差异。本文将详细介绍`prop()`的使用以及它与`attr()`的区别。 首先,`prop()`方法主要用于处理那些与DOM元素...
在jQuery中,`attr()`和`prop()`方法都是用来处理元素的属性(attributes)和特性(properties),但它们之间存在一些关键的区别。了解这些差异对于编写高效、无误的JavaScript代码至关重要。 首先,属性...
在jQuery中,`attr` 和 `prop` 是两个用于获取和设置HTML元素属性的方法,但它们之间存在着重要的差异。理解这两个方法的区别对于高效且准确地操作DOM至关重要。 首先,`attr` 方法主要用于处理HTML元素的自定义...
在jQuery中,`attr()`, `prop()`, 和 `val()` 都是用来获取或设置HTML元素属性的方法,但在处理特定属性如"value"时,它们之间存在微妙的差异。这篇文章将详细探讨这三种方法在获取input元素value值时的不同之处。 ...
jQuery作为前端开发中非常重要的JavaScript库,其提供的attr、prop和data方法分别用于操作HTML元素的属性,理解它们的区别与用法对于前端开发人员来说非常重要。本文将结合实例详细分析这三个方法的差异、功能、使用...
但是,为了适应jQuery 1.6中对`.attr()`和`.prop()`方法的更新,一些在之前版本中通过`.attr()`方法设置的属性需要改用`.prop()`方法来处理,特别是在处理布尔值属性时。 例如,在jQuery 1.6中,使用`.attr()`方法...
与`.attr()`方法不同,`.attr()`主要用于处理元素的特性(attributes),而`.prop()`更侧重于元素的状态或行为。例如,当用户勾选一个复选框时,`<input type="checkbox">`的`checked`属性就会被设置为`true`。 在...
在高版本的jQuery中,引入`prop`方法是为了更精确地处理元素的特性,特别是那些与JavaScript行为密切相关的属性。 首先,`attr`主要用于处理HTML元素的特性(attributes),这些特性通常在HTML标签中定义,如`id`、...
在jQuery的高版本中,推荐使用 `prop()` 来处理那些与元素交互密切相关的属性,而 `attr()` 更适合处理样式、链接、数据等非状态属性。正确地使用这两个方法,可以避免兼容性问题,并确保代码在各种浏览器环境下都能...
与.attr()相比,.prop()方法在处理这些属性时更为可靠,能够确保属性值的设置正确反映到DOM元素的状态上。比如对于复选框的checked属性,使用.attr()方法可能会在DOM中设置checked="true"字符串,但这个字符串并不会...
《jQuery 1.6.3与jQuery 1.9.0:从过去到现代的JavaScript奇迹》 在JavaScript的世界里,jQuery是一个不可或缺的库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互。这里我们将深入探讨jQuery 1.6.3和...
### jQuery操作attr和prop jQuery的attr和prop方法都是用来操作元素属性的,但它们有各自不同的使用场景和特性。在jQuery 1.6之后,对于一些布尔型属性如checked、selected、disabled等,推荐使用prop方法而不是...
在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?关于它们两个的区别,这里谈谈我的心得,我的心得很简单:对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。对于HTML元素我们自己...
jQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HTMl 的attribute与property区别说起,attr与prop正是这两个东西的缩写