jQuery:获取数据属性

Al.*_*.G. 64 html javascript jquery custom-data-attribute

在我的HTML中,我有一个span元素:

<span class="field" data-fullText="This is a span element">This is a</span>
Run Code Online (Sandbox Code Playgroud)

我想获得data-fullText属性.我尝试了这两种方式,但它们没有用(两者都返回undefined):

$('.field').hover(function () {
    console.log('using prop(): ' + $(this).prop('data-fullText'));
    console.log('using data(): ' + $(this).data('fullText'));
});
Run Code Online (Sandbox Code Playgroud)

然后我搜索并发现了以下问题:如何获取data-id属性?jquery无法获取数据属性值.
这两个人的答案都是"Use .attr('data-sth') or .data('sth')".
我知道这.attr()已被弃用(在我使用的jquery-1.11.0中),但是,我试过了.
它工作了!

有人可以解释原因吗?

Dar*_*rov 132

你可以使用这个.attr()功能:

$(this).attr('data-fullText')
Run Code Online (Sandbox Code Playgroud)

或者如果你小写属性名称:

data-fulltext="This is a span element"
Run Code Online (Sandbox Code Playgroud)

然后你可以使用这个.data()功能:

$(this).data('fulltext')
Run Code Online (Sandbox Code Playgroud)

.data()函数期望并仅适用于小写的属性名称.

  • 如果任何人丢失数据 - 仅使用较低的情况---很好的捕捉! (5认同)
  • 好的,那么你所要做的就是小写你的属性名称,因为这就是.data函数的工作方式以及它如何命名你的属性. (4认同)
  • 谢谢,它完美无缺!我现在不知道`data -`应该只有小写字母:) (3认同)

小智 5

1. 试试这个: .attr()

  $('.field').hover(function () {
    var value=$(this).attr('data-fullText');
  $(this).html(value);
});
Run Code Online (Sandbox Code Playgroud)

演示1: http: //jsfiddle.net/hsakapandit/Jn4V3/

2. 试试这个: .data()

$('.field').hover(function () {
    var value=$(this).data('fulltext');
  $(this).html(value);
});
Run Code Online (Sandbox Code Playgroud)

演示2: http: //jsfiddle.net/hsakapandit/Jn4V3/1/