【发布时间】:2014-06-28 19:29:21
【问题描述】:
在我的 html 中,我有一个 span 元素:
<span class="field" data-fullText="This is a span element">This is a</span>
我想获得data-fullText 属性。我尝试了这两种方法,但它们都不起作用(两者都返回undefined):
$('.field').hover(function () {
console.log('using prop(): ' + $(this).prop('data-fullText'));
console.log('using data(): ' + $(this).data('fullText'));
});
然后我搜索并发现了这些问题:How to get the data-id attribute?和jquery can't get data attribute value。
两者的答案都是"Use .attr('data-sth') or .data('sth')"。
我知道 .attr() 已被弃用(在我使用的 jquery-1.11.0 中),但是,我试过了。
它奏效了!
谁能解释一下原因?
【问题讨论】:
-
$(this).data('fulltext')将在属性小写时起作用。但实际上,您应该将其设置为:data-fulltext或data-full-text。对于后者,则:$(this).data('fullText')可以使用,使用驼峰式语法 -
仅供参考,
I know that .attr() is deprecatedattr() 未被弃用,这是用于设置/获取属性的方法,而不是属性 -
那么我应该使用什么 -
prop或attr? -
在您的情况下,请改用
data(),但您应该重写此属性以使用:data-fulltext="This is a span element"
标签: javascript jquery html custom-data-attribute