attr()和prop()

以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$(‘#img‘).attr(‘alt‘);

但是在某些时候,比如访问checkbox的disabled属性的时候,会有些问题。在有些浏览器里,只要写了disabled就可以,有些则要写:disabled = "disabled"。所以,从1.6开始,jq提供新的方法“prop”来获取这些属性。

使用prop的时候,返回值是标准属性,true/false,比如$(‘#checkbox‘).prop(‘disabled‘),不会返回 “disabled”或者“”,只会是true/false。当然赋值的时候也是如此。如此,我们便统一了所有操作,无论是从语法上还是语义上。

那么,哪些属性应该用attr访问,哪些应该用prop访问呢?一个原则是,只添加属性名不添加属性值就会生效;第二个原则是,只存在true/false的属性,按照官方文档,如下:

Attribute/Property .attr() .prop()
accesskey  
align  
async
autofocus
checked
class  
contenteditable  
draggable  
href  
id  
label  
location ( i.e. window.location )
multiple
readOnly
rel  
selected
src  
tabindex  
title  
type  
width ( if needed over .width() )  

前端的同学或者做前端开发的同学都注意下吧,尤其是准备把项目迁移到jq1.6的。

时间: 2024-11-02 21:39:12

attr()和prop()的相关文章

JQuery中Attr与Prop的区别

今天做一个用jquery控制input checkbox的选中和不选中赋值,开始attr一直出现莫名其妙的问题,首次能赋值,之后每次点击完全没效果.后面改用prop来做,功能正常. 以下介绍attr与prop的区别: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 参考文章:http://www.cnblogs.com/Showshare/p/different-between-attr-and-pro

Jquery中attr和prop的区别

jQuery之prop和attr的区别 1..prop( propertyName ) 获取匹配集合中第一个元素的Property的值 2. .prop( propertyName, value ) .prop( map ) .prop( propertyName, function(index, oldPropertyValue) ) 给匹配元素集合设定一个或多个属性 .prop()和 .attr()区别 下面是关于jQuery1.6和1.6.1中Attributes模块变化的描述,以及.at

jQuery学习笔记(四):attr()与prop()的区别

这一节针对attr()与prop()之间的区别进行学习. 先看看官方文档是如何解释两者之间功能差异的: attr() Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.获取匹配的元素集合中第一个元素的attribute,或者为每个选定的元素添加一个至多个attribute

jquery中attr和prop的区别分析

这篇文章主要介绍了jquery中attr和prop的区别分析的相关资料,需要的朋友可以参考下 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. 复制代码代

jQuery .attr() vs. .prop()

Property vs. Attribute 在开始正式比较prop()和attr()两个jQuery方法之前,我们有必要先弄清一下Property和Attribute两个单词的意思.在中文里面,它们都是属性的意思,那究竟有什么区别呢?我是这么理解的(曾经在<深入浅出WPF>一书中看到过一些关于XAML相关的解释,觉得这里也是适用的): Property - 属性.字段,这是站在面向对象的层面去理解的,当我们将现实中的某一物体用代码把它抽象出来时,那么它的属性我们就用Property来表示.在

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

jquery获取自定义属性(attr和prop)实例介绍 作者: 字体:[增加 减小] 类型:转载 jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式 $("form").attr("check"); $("form").prop("check"); 两种都可以,不过新版jquery推荐第二种,两个在其他

jQuery中attr和prop方法的区别

相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties).只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes.prop应运而生了. 之前看网上对比两者的文章,更是列出一个表来区分什么标签下使用prop,什么标签下使用attr,原谅我是懒惰的人,最害怕要背的东西,所以只有自己想想办法了. 既然我们想知道他们两的

jQuery属性选择器.attr()和.prop()两种方法

在判断表单单选框是否被选中时,通常会想到使用$('#checkbox').attr('checked')来判断,但在一些情况下,你会发现这种方法并不管用,得到的是undefined. 原来jQuery在1.6版本以后对属性选择器做了一些调整,分为.attr()和.prop()两种方法.为的是区分元素attributes和properties之间模棱两可的东西. 那么它们之间有什么区别呢? 官方的解释是: Attributes vs. Properties The difference betwe

【转】jQuery的attr与prop

原文:<jQuery的attr与prop> jQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HTMl 的attribute与property区别说起,attr与prop正是这两个东西的缩写. attribute与property attribute和property都可以翻译为属性,为了以示区别,通常把这两个单词翻译为属性与特性. <div id="test">Click Here</div&

jQuery 1.6+ 中attr()与prop() 区别

最近在写一个关于checkbox全选与取消全选的优化方法时,看到很多高手用到了.prop(). 于是在jquery的帮助文档查了一下,才知道这是在jquery 1.6.1中新加的方法,用来设置属性.但已经有了attr(),为何还要加入prop()呢?于是查阅了一下相关文档,总结一下. 下面主要写一下它们在何种情况下被使用: 一.checked,selected,readonly和disabled在1.6.1中和1.6之前的处理相同,也就是说还是直接用attr()即可,如 $(“:checkbox