Je souhaite utiliser document.createDocumentFragment()
pour créer une collection optimisée d'éléments HTML contenant ".data" provenant de jQuery (v 1.4.2), mais je suis sorte de coincé sur la façon de faire ressortir les données à partir des éléments HTML.Utilisation de document.createDocumentFragment() éléments enfant dom contenant jQuery.data
Voici mon code:
var genres_html = document.createDocumentFragment();
$(xmlData).find('genres').each(function(i, node) {
var genre = document.createElement('a');
$(genre).addClass('button')
.attr('href', 'javascript:void(0)')
.html($(node).find('genreName:first').text())
.data('genreData', { id: $(node).find('genreID:first').text() });
genres_html.appendChild(genre.cloneNode(true));
});
$('#list').html(genres_html);
// error: $('#list a:first').data('genreData') is null
alert($('#list a:first').data('genreData').id);
ce que je fais mal ici? Je suspecte que c'est probablement quelque chose avec .cloneNode()
ne reportant pas les données quand l'élément est ajouté au documentFragment
. Parfois, il y a des tonnes de lignes donc je veux garder les choses assez optimisées, en vitesse.
Merci!
Oui, je pense que c'est la partie principale avec laquelle je suis confus, je ne sais pas si je veux commencer avec un objet jQuery ou non. Je regardais cette diapositive, mais c'est en JS: http://ejohn.org/apps/workshop/adv-talk/#6 - ce dont j'ai besoin c'est de le convertir en un objet jQuery qui contient les données de l'élément . – taber
Vous pouvez utiliser les fonctions natives 'setAttribute' et' innerHTML', mais si vous avez besoin d'utiliser 'data()' de jQuery, vous aurez évidemment besoin d'un objet jQuery. Donc la question est, * avez-vous vraiment besoin d'utiliser 'data' *? Peut-être que vous pourriez vous débrouiller avec la définition d'un attribut personnalisé. Je mettrai à jour ma réponse avec une possibilité. – user113716
Merci, ouais le problème est que je ne peux pas ajouter un documentElement "jQuerified" (qui contient les données) à mon documentFragment. Oui, je voudrais utiliser «données». :( – taber