jquery中attr和prop的区别分析

如题所述

二者都可以获取dom的属性,但是参数不同:

    attr : 获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。

    .attr( attributeName, value )

    .attr( attributes )

    .attr( attributeName, function(index, attr) )

    .attr( attributeName )

    .attr( attributeName, value )

    prop : 获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。

    .prop( propertyName, value )

    .prop( properties )

    .prop( propertyName, function(index, oldPropertyValue) )

    .prop( propertyName )

    .prop( propertyName, value )

attr传入的是attributeName,而prop传入的是propertyName,现在我们的问题转移了,我们需要研究的是attributeName和propertyName之间的区别了。

Attributes vs. Properties

在这里,可以将attribute理解为“特性”,property理解为为“属性”从而来区分俩者的差异。 如果把DOM元素看成是一个普通的Object对象,这个对象在其定义时就具有一些属性(property),比如把select的option当做一个对象:

var option = { selected:false, disabled:false, attributes:, ...}

现在,我们一目了然了,attribute是一个特性节点,每个DOM元素都有一个对应的attributes属性来存放所有的attribute节点,它是一个类数组的容器。attributes的每个数字索引以名值对(name=”value”)的形式存放了一个attribute节点。而property就是一个属性,是一个以名值对(name=”value”)的形式存放在Object中的属性。

温馨提示:内容为网友见解,仅供参考
无其他回答

jquery中attr和prop的区别分析
很明显,attr和prop分别是单词attribute和property的缩写,并且它们均表示"属性"的意思。不过,在jQuery中,attribute和property却是两个不同的概念。attribute表示HTML文档节点的属性,property表示JS对象的属性。<!-- 这里的id、class、data_id均是该元素文档节点的attribute --> \/\/ 这里的name、age、...

详解jQuery中attr()和prop()的区别是什么?
jQuery中attr()和prop()的区别1、对于HTML元素本身就带有的固有属性,或者说W3C标准里就包含有这些属性,更直观的说法就是,编辑器里面可以智能提示出来的一些属性,如:src、href、value、class、name、id等,在处理时,使用prop()方法。2、对于HTML元素我们自定义的DOM属性,即元素本身是没有这个属性的...

jquery中attr和prop的区别分析
这个例子里元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,元素本身是没有这个属性的。因此获取action使用attr方式获取,其他需要通过prop方式获取 补充:在jquery1.6之前的所有版本中都使用attr方法来获取 ...

jQuery学习之prop和attr的区别
prop和attr的根本区别在于:1、对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。百度 这个例子里元素的DOM属性有“href、target和class",这些属性就是元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用...

jquery中attr和prop的区别分析
一静一动的区别。attr用来设置属性值 prop来修改动态变化的值。像单选框,复选框的状态改变,就得用prop,用attr是无效的。

jQuery 中 attr 和 prop 方法的区别
attr着重强调特性,而prop强调属性。attr和prop对应着不同的作用域,除了元素本身(浏览器内置)的属性外,prop和attr操作的属性在各自的域内独立存在。需要注意的是,prop在读取元素的内置属性值时,只会读取内置的值类型,不会读取用户自定义的值类型,同样,用户自定义的类型也不能使用prop写。

jquery中attr和prop的区别分析
.prop( propertyName, value )attr传入的是attributeName,而prop传入的是propertyName,现在我们的问题转移了,我们需要研究的是attributeName和propertyName之间的区别了。Attributes vs. Properties 在这里,可以将attribute理解为“特性”,property理解为为“属性”从而来区分俩者的差异。 如果把DOM元素看成...

jquery中attr和prop的区别
相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取\/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。attr:描述: 获取匹配的元素集合中的第一个元素的属性的值。...

jQuery 中 attr 和 prop 方法的区别
1 在读取和修改元素的内置属性(如type)时,prop()只会读取浏览器内置的属性值,而attr()还会读取非浏览器内置的值 2 在向元素添加非浏览器内置属性时,直接通过标签添加和通过attr()添加的属性在attr的域(scope)中,通过prop()添加的属性在域(scope)中;并且,prop()和attr()只能修改其自身域内...

jquery中prop方法和attr方法的区别浅析
1、赋值时候,如果是这样的只有属性名就能生效的属性 推荐prop,即:$('input').prop('checked',true);同时,false表示取消,即:$('input').prop('checked',false);当然attr也行的:$('input').attr('checked','这里写什么都行的');取消属性就是移除:$('input').removeAttr('checked');...

相似回答