我有
<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')
来检索文本)
答案 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()
方法已经检索过它们。
答案 1 :(得分:0)