从html访问jQuery数据

时间:2012-08-22 11:19:08

标签: javascript jquery

我有

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

我需要在javascript中访问数据文本。 它与alert($('div').data('text'));一起使用但不与alert($.data($('div'), 'text'));一起使用,但未定义。

为什么?

LINK:http://jsfiddle.net/tvDzP/2/

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

2 个答案:

答案 0 :(得分:1)

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

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

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

来自docs

  

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

Demo

答案 1 :(得分:0)

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

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

http://jsfiddle.net/CGck6/