【问题标题】:jQuery data() vs attr(data)jQuery 数据()与 attr(数据)
【发布时间】:2012-02-25 14:09:40
【问题描述】:

我想知道使用$(element).data({'foo' : 'bar'})$(element).attr({ 'data-foo' : 'bar' }) 将数据保存到元素之间的区别。当将大量数据保存到元素中时,这两种方法中哪一种最适合使用?谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    $.data 用于存储关于元素的信息:

    Docs:

    存储与指定元素关联的任意数据。退货 设置的值。

    另一方面,attr 用于操作元素的属性

    从您的问题来看,您似乎存储了数据,在这种情况下您应该使用$.data

    data-* attributes 是 HTML5 的一个特性

    性能

    根据this

    .data() 似乎对性能更加友好

    我还发现它更干净,因为它在页面源代码中对每个人都不可见。

    【讨论】:

    • 我正在使用 JSON.stringify 保存一个对象。 data() 方法也可用于获取使用 .attr() 保存的 html5 数据属性。但我想使用 data() 会更好。使用data时,它存储在哪里?它不会显示为元素上的数据属性
    • @Johan:$.data 属性不会被添加到元素中,因为它不是用于属性而是用于数据。至于存储,我相信 jQuery 在内部将它存储在某个对象中。
    • 好的,谢谢您的信息。不知道IE7的data()有没有问题?
    • @Johan:我没有在 IE7 上使用过它,但你可以试试。我认为由于 jQuery 在 IE6 之前确实适用于浏览器,所以它应该可以正常工作。
    【解决方案2】:

    我会说数据,因为这就是它的本意。它支持您尝试实现的确切功能类型。 http://api.jquery.com/jQuery.data/

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 2011-12-06
      • 2011-10-18
      • 2012-01-08
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      相关资源
      最近更新 更多