jquery中data()和attr()的区别是什么

区别:“$.attr()”每次都从DOM元素中取属性的值,即和视图中标签内的属性值保持一致;而“$.data()”是从Jquery对象中取值,由于对象属性值保存在内存中,和视图中的属性值不一定一致。

jquery中data()和attr()的区别是什么

本教程操作环境:windows7系统、jquery1.10.2版本、Dell G3电脑。

$.attr()和$.data()本质上属于DOM属性和Jquery对象属性的区别。

一个简单的例子

nbsp;html>                    Jquery中.attr和.data的区别                

             var getAttr1 = $('#app').attr('data-foo'); var getData1 = $('#app').data('foo'); console.log('getAttr1: ' + getAttr1); //hello console.log('getData1: ' + getData1); //hello $('#app').attr('data-foo', 'world'); //$.attr 设置DOM元素属性值 var getAttr2 = $('#app').attr('data-foo'); var getData2 = $('#app').data('foo'); console.log('getAttr2: ' + getAttr2); //world console.log('getData2: ' + getData2); //*** hello *** $('#app').data('foo', 'WORLD'); //$.data 设置DOM node属性值 var getAttr3 = $('#app').attr('data-foo'); var getData3 = $('#app').data('foo'); console.log('getAttr3: ' + getAttr3); //world console.log('getData3: ' + getData3); //*** WORLD ***

登录后复制

$.attr()每次都从DOM元素中取属性的值,即和视图中标签内的属性值保持一致。

$.attr(‘data-foo’)会从标签内获得data-foo属性值;

$.attr(‘data-foo’, ‘world’)会将字符串’world’塞到标签的’data-foo’属性中;

$.data()是从Jquery对象中取值,由于对象属性值保存在内存中,因此可能和视图里的属性值不一致的情况。

$.data(‘foo’)会从Jquery对象内获得foo的属性值,不是从标签内获得data-foo属性值;

$.data(‘foo’, ‘world’)会将字符串’world’塞到Jquery对象的’foo’属性中,而不是塞到视图标签的data-foo属性中。

结合上面代码和解释,大家应该能够理解两者的区别。

所以$.attr()和$.data()应避免混合用,也就是应该尽量避免如下两种情况的出现:

通过$.attr()来进行set属性,然后通过$.data()进行get属性值;

通过$.data()来进行set属性,然后通过$.attr()进行get属性值。

同时从性能的角度来说,建议使用$.data()来进行set和get操作,因为它仅仅修改的Jquey对象的属性值,不会引起额外的DOM操作。

相关视频教程推荐:jQuery教程(视频)

以上就是jquery中data()和attr()的区别是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2944604.html

(0)
上一篇 2025年3月11日 22:26:04
下一篇 2025年2月18日 08:14:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Jquery中PI是什么意思

    在Jquery中,PI指的就是“π”,即圆的周长和它的直径之比(圆周率),它的值近似为“3.141592653589793”,语法“Math.PI”。 本教程操作环境:windows7系统、jquery1.10.2版本、Dell G3电脑。…

    2025年3月11日
    200
  • jquery的开发工具有哪些

    jquery的开发工具有:1、TestSwarm;2、Minimee;3、Doctor JS;4、remy sharp;5、JavaScript Library Boilerplate;6、JsDoc Toolkit;7、Jasmine等。…

    2025年3月11日
    200
  • jquery读取节点的方法有哪些

    读取节点的方法有:1、“jQuery.parent(expr)”;2、“jQuery.children(expr)”;3、“jQuery.contents()”;4、“jQuery.prev()”;5、“jQuery.next()”等等。 …

    2025年3月11日
    200
  • jquery trim方法可以去除什么符号

    在jquery中,trim()方法可以去除字符串两端的空白符号,包括换行符、空格符和制表符,语法“$.trim(string)”;参数“string”指定需要去除两端空白字符的字符串。 本教程操作环境:windows7系统、jquery1.…

    2025年3月11日
    200
  • jquery怎么查询第一个子节点

    jquery查询第一个子节点的方法:1、通过“$(“#test”).children();”获取全部子节点;2、通过“$.children(‘:first’)”获取子节点的第一个即可。 本文操…

    2025年3月11日
    200
  • jquery ajax有什么好处

    jquery ajax的好处:1、不需要插件支持;2、用户体验好,能在不刷新整个页面的前提下局部更新页面信息,迅速的返回用户操作结果;3、提高Web程序性能;4、减轻服务器和带宽的负担。 本教程操作环境:windows7系统、jquery1…

    2025年3月11日
    200
  • jquery中显示和隐藏元素用什么

    jquery中显示隐藏元素用的方法:1、show()和hide();2、toggle(),可切换元素的可见状态;3、slideDown(),能以滑动方式显示和隐藏元素;4、css(),可通过控制元素的“display”属性来显示和隐藏元素。…

    2025年3月11日
    200
  • jquery相比js的优势是什么

    jquery相比js的优势:1、可以写多个入口函数;2、jQuery的API名字容易记忆;3、jQuery的代码简洁(具有隐式迭代机制);4、jQuery帮用户解决了浏览器兼容问题;5、容错率较高,前面的代码出了问题,后面的代码不受影响。 …

    2025年3月11日
    200
  • jquery能处理双击、单击事件吗

    在jquery中,能通过dblclick()和click()方法来处理双击和单击事件。使用dblclick()方法可以规定当发生dblclick(双击)事件时运行的函数;使用click()方法可规定当发生click(单击)事件时运行的函数。…

    2025年3月11日
    200
  • jquery样式操作有哪些

    jquery样式操作:1、使用css()设置或返回匹配元素的样式属性;2、使用height()设置或返回匹配元素的高度;3、用offset()返回第一个匹配元素相对于文档的位置;4、用offsetParent()返回最近的定位祖先元素等等。…

    2025年3月11日
    200

发表回复

登录后才能评论