55

次のコードがあります。

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

最初のアラートは を返しますundefinedが、2 番目のアラートは整数 を返します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 に答える