J'ai ce HTML:
$(function() { $('#query').data('source', 'test'); console.log($('#query').data()); });
5 Réponses :
Dans votre violon, vous avez ce code.
$(function() { $('#query').data('source', 'test'); console.log($('#query').data()); });
Les données ne sont pas stockées sur l'élément (utilisez ATTR ou PROP pour cela). Au lieu de cela, JQuery le maintient en $ .Cache. P>
$ ('# Query'). Données () Code> donne la carte de tous les attributs de données stockés avec l'élément Jetez un look ici jsfiddle.net/r5yv9/10 . Vous n'êtes pas obligé d'utiliser
prop code> ou
attr code> pour y accéder.
Si vous faites quelque chose de fou comme à l'aide de l'attribut Data pour appliquer le style (non, ce n'est pas vraiment fou), vous avez besoin du cache de JQuery's et em> le DOM à mettre à jour. Swaper Out Le jQuery p> qui ne mettra pas à jour le DOM à une méthode qui fait à la fois p> note: EM> J'ai toujours mis $ devant les variables de JQuery, au cas où n'importe qui est confondu à ce sujet. ;) p> p>
Reportez-vous à la documentation JQuery sur Utilisation de la méthode Data () pour mettre à jour les données n'affecte pas les attributs dans
le dom. Pour définir une valeur d'attribut de données *, utilisez attr. P>
blockQuote> Donc, vous devez utiliser P> Data () Code> S'il vous plaît et vous verrez là-bas:
$('#query').attr('data-source', 'test');
Les données Ainsi, lorsque vous utilisez JQuery jQuery () code> stockent les informations dans les données de fonction définies localement. Alors que jQuery
attr () code> stocke les informations directement sur l'élément dans les attributs publiquement visibles sur inspection. P>
Data () CODE>, les données ne sont pas accessibles de l'extérieur de JQuery directement et ne seront pas visibles lors de l'inspection. P>
Jsfiddle ici: jsfiddle.net/r5yv9/7