30 votes

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

J'ai le code suivant :

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

Le premier alerte renvoie undefined, tandis que le deuxième renvoie un entier, 3.

-- VOIR DÉMO --

Je suis en train d'utiliser la version 1.7.2 de jQuery (data a été ajouté avec la version 1.4 je crois)

Pourquoi cela ? Devrais-je utiliser data() du tout si cela ne renvoie pas les bonnes valeurs ?

63voto

VisioN Points 62518

D'accord. J'ai trouvé le problème en interprétant la documentation de jQuery.

Lorsque vous écrivez :

$embellishment.data("embellishmentId");

cela est géré par jQuery comme un attribut composé :

Donc, pour résoudre le problème, vous pouvez utiliser des minuscules dans la clé de données sinon cela cible simplement un attribut différent.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X