jquery中attr() & prop() 的区别与其实现方法

$(function(){
    $(‘#check‘).attr(‘checked‘);        //   undefind   ???一头雾水
})

在jquery中 attr 本来就是用来设置或者获取属性的,可是上面的方法却返回给 undefined ?

然后我尝试用

    $(‘#check‘).prop(‘checked‘);     

发现可以正常运行!!

在jquery中prop是相对来说版本比较新的一个方法,乍一看它的功能好像和attr没有什么很大的差别,的确,它们都可设置或者来获取属性,比如

$(‘#div‘).attr(‘title‘,‘hello‘);
$(‘#div‘).prop(‘title‘,‘hello‘);
$(‘#div‘).attr(‘class‘);
$(‘#div‘).prop(‘class‘);

都可以正常的运行,通过查看他们在jquery中的源码我有所发现:

  在原生js中我们可以用 setAttribute() 和 getAttribute() 进行操作 ,也可以用  .|[] 进行操作 (exp: document.getElementById(‘div‘).title|| document.getElementById(‘div‘)[title] )。

  在jquery当中 attr() 方法最主要的就是应用了原生中的 setAttribute() 和 getAttribute()  而  prop() 方法用的则是 . | []  这就是他们之间为什么会有不同之处的根本原因(当然,其中还有一些hook的因素影响着,感兴趣的同学可以去看一看源码)

  那么 attr() 和 prop()  在平常的使用中有什么区别呢,在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined。如果你要去恢复或者改变DOM状态值,类似checkedselecteddisabled等表单元素的状态,最好使用.prop()方法,而自定义的属性最好使用attr() 方法,若使用prop() 同样可能会出现undefined的情况。官方给出了下面的一个表:(什么时候用哪种方法)

时间: 2024-10-11 23:09:46

jquery中attr() & prop() 的区别与其实现方法的相关文章

jQuery中attr,prop区别

前2篇jQuery笔记中,分别总结了jQuery中attr()和prop()的用法,大家可能会发现这两个方法在使用起来非常类似 没有看过的童鞋可移步:attr()用法  http://www.cnblogs.com/zwwhnly/p/7383960.html   prop()用法 http://www.cnblogs.com/zwwhnly/p/7389295.html 本篇笔记主要总结下attr(),prop()之间的区别 假使页面上如如下Html标签: <input type="ch

关于jQuery中attr(),prop()的使用

注意:什么时候使用attr(),什么时候使用prop()?1.添加属性名称该属性就会生效应该使用prop();2.是有true,false两个属性使用prop();3.其他则使用attr(); 以下是官方建议attr(),prop()的使用: Attribute/Property .attr() .prop() accesskey √   align √   async √ √ autofocus √ √ checked √ √ class √   contenteditable √   dra

jquery中attr和prop的区别分析

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

Jquery学习笔记(6)--jquery中attr和prop的区别【精辟】

jquery中attr和prop的区别 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a href="http://www.baidu.com&quo

jquery中attr和prop的区别(转)

在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了,一下为原文引用: 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a

jQuery中的prop()和attr()的区别

1.jQuery中的prop()和attr()的区别 prop()是在jQuery1.6版本之后才有的,在之前一直都是使用attr(), prop()修复了attr()的一些小bug. 2.推荐用法: prop() :在HTML元素固有属性的时候用prop() attr() : 推荐在HTML非固有属性(自定义属性)的时候用attr() attr() 方法设置或返回被选元素的属性值. 根据该方法不同的参数,其工作方式也有所差异. //改变图片的width属性 $("img").attr

jQuery中attr()、prop()、data()用法及区别

.attr(),此方法从jq1.0开始一直存在,官方文档写的作用是读/写DOM的attribute值,其实1.6之前有时候是attribute,有时候又是property..prop(),此方法jq1.6引入,读/写DOM的property..data(),此方法在jq1.2.3引入,作用是把任意的值读取/存储到DOM元素对应的jq对象上. 从性能上对比,.prop() > .data() > .attr(),不同浏览器不同版本.data()和.attr()的性能关系有差异,不过.prop()

关于jQuery中.attr()和.prop()

功能需求是这样的,两个radio:男和女,一个button:重置.启动页面默认选中男,在用户选择女之后又点击重置按钮,需要恢复到默认状态. <input type="radio" id="hRdMale" checked="checked" name="sex" value="male" /><label for="hRdMale">男</label>

javascript 与 jquery 中的函数调用的区别

标签:例如<input id="btn_show" type="button" onclick="show()" /> <script type="text/javascript"> $(function(){ function show(){ -- } }) function show(){ -- } </script> 注意, 此时button的点击事件不会调用jquery中的show(