web-dev-qa-db-fra.com

jQuery data () renvoie undefined, attr () renvoie un entier

J'ai le code suivant:

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

La première alerte renvoie undefined, tandis que la deuxième alerte renvoie un entier, 3.

- VOIR DÉMO -

J'utilise la version 1.7.2 de jQuery (data a été ajouté avec la version 1.4 je crois)

Pourquoi est-ce? Dois-je utiliser data() du tout s'il ne renvoie pas les bonnes valeurs?

49
Curt

D'ACCORD. J'ai trouvé le problème en interprétant docs jQuery .

Lorsque vous écrivez:

$embellishment.data("embellishmentId");

il est géré par jQuery comme attribut composé:

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

Donc, pour résoudre le problème, vous pouvez utiliser des minuscules dans la clé de données, sinon cela ne fait que traiter les différents attributs.

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

// JavaScript
$embellishment.data("embellishmentid");
102
VisioN