jQuery从html访问数据

jQuery data access from html

本文关键字:数据 访问 html jQuery      更新时间:2023-09-26

我有

<div data-text="This is a text">...</div>

我需要访问javascript中的数据文本。它可以与alert($('div').data('text'));一起使用,但不能与alert($.data($('div'), 'text'));一起使用。

为什么?

链接:http://jsfiddle.net/tvDzP/2/

(对于性能问题,我使用element.attr('data-text')来检索文本)

通常$.data需要一个DOM节点,而不是jQuery对象。

$('div').data('text') // correct
$.data($('div')[0], 'text') // correct
$.data($('div'), 'text') // incorrect

但是,对于data-*属性,$.data不起作用,除非$(element).data()已经检索过一次该值。

来自文档:

关于HTML5数据-*属性:此低级方法不会检索data-*属性,除非更方便的.data()方法已经检索到它们。

演示

element必须是DOM元素,而不是选择器或jQuery对象:

$.data($('div')[0], 'text')

http://jsfiddle.net/CGck6/