`
zccst
  • 浏览: 3319311 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

attr与prop的区别

阅读更多
作者:zccst


jQuery在1.6.1中对两者做了区别。但仍兼容旧版本。
详见:http://blog.sina.com.cn/s/blog_655388ed01017cnc.html


五. 特性(properties)和属性(attributes)有何区别?

DOM对象大部分的property都有对应的attribute,名字也基本一样(也有例外,如“class”这个attribute对应的property名字为“className”),这些property也和其对应的attribute保持一样的状态或值。但一些Boolean类型的属性(如checked, selected, disabled等)有些特殊,其attribute只保留初始值(默认值), property才是当前最新的状态或值。如一个默认勾选的checkbox,当你在页面去除勾选的时候,checked这个property已由true变为false,而checked这个attribute仍然保持“checked”这个初始值。由此可见attribute和property完全不是同一个东西,但“通用”的attr方法似乎在某种程度上模糊了这个区别。

六. attr()和prop()有何区别?

使用prop的时候,返回值是标准属性,true/false,比如$('#checkbox').prop('disabled'),不会返回“disabled”或者“”,只会是true/false。当然赋值的时候也是如此。使用attr,如disabled='disabled'时,为true,没有选中时,则为undefined。如此,我们便统一了所有操作,无论是从语法上还是语义上。
.prop()方法应该被用来处理boolean attributes/properties以及在html(比如:window.location)中不存在的properties。其他所有的attributes可以而且应该继续使用.attr()方法来进行操作。

七、什么时候使用attr(),什么时候使用prop()?

1、添加属性名称该属性就会生效应该使用prop();
2、是有true,false两个属性使用prop();
3、其他则使用attr();
4、简单的说,那些只添加属性名不添加属性值就会生效,或者是,只存在true/false的属性就需要使用prop()方法,比如selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected。


如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
评论

相关推荐

    JS中attr和prop属性的区别以及优先选择示例介绍

    在JavaScript的jQuery库中,`attr`和`prop`都是用于获取或设置元素属性的方法,但它们之间存在一些重要的区别。这些方法的使用场景不同,理解它们的差异对于编写高效且正确的JavaScript代码至关重要。 首先,`attr`...

    jquery中attr和prop的区别分析

    总结来说,`attr` 和 `prop` 的主要区别在于: 1. `attr` 用于处理自定义属性和非固有属性,而`prop` 用于处理固有属性。 2. 固有属性(如`checked`、`selected`)使用`prop`可以获取或设置正确的布尔值,而`attr`则...

    jquery中attr、prop、data区别与用法分析

    jQuery作为前端开发中非常重要的JavaScript库,其提供的attr、prop和data方法分别用于操作HTML元素的属性,理解它们的区别与用法对于前端开发人员来说非常重要。本文将结合实例详细分析这三个方法的差异、功能、使用...

    Jquery中attr与prop的区别详解

    在jQuery中,`attr`和`prop`是两个用于获取和设置HTML元素属性的方法,但它们之间存在着重要的区别。在高版本的jQuery中,引入`prop`方法是为了更精确地处理元素的特性,特别是那些与JavaScript行为密切相关的属性。...

    jQuery操作attr、prop、val()/text()/html()、class属性

    ### jQuery操作attr和prop jQuery的attr和prop方法都是用来操作元素属性的,但它们有各自不同的使用场景和特性。在jQuery 1.6之后,对于一些布尔型属性如checked、selected、disabled等,推荐使用prop方法而不是...

    jQuery的attr与prop使用介绍

    jQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HTMl 的attribute与property区别说起,attr与prop正是这两个东西的缩写

    jQuery checkbox选中问题之prop与attr注意点分析

    本文将重点分析在火狐(Firefox)浏览器下,使用jQuery的prop和attr方法来设置checkbox选中状态的不同表现和解决方法。 首先,需要了解的是,在jQuery中,attr方法是用来获取或设置HTML属性的值,而prop方法则是...

    jquery中prop()方法和attr()方法的区别浅析

    在jQuery中,`attr()`和`prop()`方法都是用来处理元素的属性(attributes)和特性(properties),但它们之间存在一些关键的区别。了解这些差异对于编写高效、无误的JavaScript代码至关重要。 首先,属性...

    jquery prop的使用介绍及与attr的区别

    本文将详细介绍`prop()`的使用以及它与`attr()`的区别。 首先,`prop()`方法主要用于处理那些与DOM元素状态或行为相关的属性,比如`checked`、`selected`、`disabled`等。这些属性的值通常不是字符串,而是布尔值或...

    python学习-19-dyn-attr-prop.zip

    Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。它是由荷兰人吉多·罗萨姆于1989年发布的,第一个公开发行版发行于1991年。Python注重解决问题的方法,而不是语法和结构。...

    jQuery获取attr()与prop()属性值的方法及区别介绍

    在jQuery的高版本中,推荐使用 `prop()` 来处理那些与元素交互密切相关的属性,而 `attr()` 更适合处理样式、链接、数据等非状态属性。正确地使用这两个方法,可以避免兼容性问题,并确保代码在各种浏览器环境下都能...

    详谈jQuery中使用attr(), prop(), val()获取value的异同

    在获取`value`属性时,`val()`的行为与`prop()`非常相似,都会返回元素当前的值,而非初始值。因此,无论是用户修改后的值还是初始值,`val()`都会正确地反映出输入框的实际内容。 总结起来,对于获取input元素的...

    jquery获取自定义属性(attr和prop)实例介绍

    与`attr()`不同的是,`prop()`在处理布尔值属性时,直接传入`true`或`false`即可切换其状态。 在某些情况下,`attr()`和`prop()`的行为是相似的,但在处理特定类型属性时,如表单元素的状态属性,推荐使用`prop()`...

    jquery判断复选框选中状态以及区分attr和prop

    `prop()`方法则是在jQuery 1.6引入的,用于获取或设置元素的固有属性,这些属性是与元素的行为和状态紧密相关的。例如,对于复选框,`prop('checked')`会返回一个布尔值,表示复选框是否被选中。如果复选框被选中,`...

    jQuery中attr()与prop()函数用法实例详解(附用法区别)

    主要介绍了jQuery中attr()与prop()函数用法,结合实例形式详细分析了attr()与prop()函数的使用技巧与相关注意事项,并附带了attr()与prop()函数用法的区别,需要的朋友可以参考下

    关于jquery中attr()和prop()方法的区别

    在jQuery中,`attr()` 和 `prop()` 都是用来处理元素属性的方法,但它们之间存在重要的差异,这些差异主要体现在处理DOM元素的状态和属性值上。以下是对这两个方法的详细解释和对比: **attr() 方法** `attr()` ...

Global site tag (gtag.js) - Google Analytics