Question

Au cours des dernières semaines, j'utilise jQote - templating côté client plug-in pour générer des fragments HTML dans l'exécution.

Pendant des mois, j'utilise dom attributs tels que, id, classe, alt pour stocker des données critiques.

Maintenant, je suis venu à connaître la méthode de .data() dans jquery pour stocker et récupérer des données.

Partout dans mon projet, je suis générer des fragments HTML dynamiquement en utilisant des modèles.

Maintenant, je dois savoir comment puis-je utiliser .data () dans ces modèles de manière dynamique et stocker des données critiques dans tout élément créé dynamiquement.

Le code du modèle est comme ça,

var template = templateCache.idOfTheTemplate; // say its a <li>
for(var i = 0; i < length; i ++){
$("#ulID").jqotepre(template, data);
}

Modèle:

<script id="idOfTheTemplate" type="text/template">
<li id="<%=this.id%>">//here i want to use .data() and store the id with different key
<a id="<%=this.id%>" href="#"><%=this.linkName%></a>
</li>
</script>

Solution:

 $("#ulID").jqotepre(template, data);

Après cette ligne a été exécutée, cet élément était disponible dans les DOM.

Alors, vous pouvez simplement ce faire,

$("#ulID").jqotepre(template, data);
$('#' + data.id).data('liInfo', data);//data.id is the ID of the li element in the DOM
Était-ce utile?

La solution

La fonction .data () dans JQuery travaille sur les éléments de données de html5.

Signification

<li id="myId" data-food="value" > 

est le même que

$("#myId").data('food', 'value');

Vous pouvez en savoir plus sur les éléments de données html5 http://html5doctor.com/html5- données particulières-attributs /

Et plus sur la fonction de données de JQuerys http://api.jquery.com/jQuery.data/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top