web-dev-qa-db-fra.com

Obtenir jquery attribut de données vs javascript

J'ai un ensemble d'attributs de données personnalisé par défaut:

data-equipment="0"

Si je le change avec jquery en utilisant . Data ()

$(this).data("equipment", 10)

puis utilisez le getAttribute ()

this.getAttribute("data-equipment")

j'obtiens l'ancienne valeur (0) et non la nouvelle (10). Mais si j'utilise

$(this).data("equipment") j'obtiens la nouvelle valeur (10).

Est-ce censé fonctionner comme ça ou est-ce que je manque quelque chose?

Merci!

50
pedroto

.data() ne fonctionne pas sur les attributs de données mais dans le cache jQuery interne. Initialement, si aucun enregistrement de cache n'est trouvé, les données sont lues à partir d'un data- attribut s'il en existe un, mais c'est la fin de leur coopération.

S'il opérait sur des attributs, il serait inutile à ses fins car les valeurs d'attribut doivent être des chaînes.

45
Esailija