55

我有以下代码:

alert($embellishment.data("embellishmentId"));
alert($embellishment.attr("data-embellishmentId"));

第一个警报返回undefined,而第二个警报返回一个整数3

-- 看演示 --

我正在使用 jQuery 1.7.2 版(data我相信是在 1.4 版中添加的)

为什么是这样?data()如果它没有返回正确的值,我应该使用它吗?

4

1 回答 1

117

好的。我通过解释jQuery docs发现了问题。

当你写:

$embellishment.data("embellishmentId");

它由 jQuery 作为复合属性处理:

<div data-embellishment-id="3"></div>

因此,要解决问题,您可以在数据键中使用小写字母,否则它只会解决不同的属性。

<!-- HTML -->
<div data-embellishmentid="3"></div>

// JavaScript
$embellishment.data("embellishmentid");
于 2012-06-12T08:43:45.267 回答