jQuery ajoutant un tableau d'éléments

Pour le but de cette question permet de dire que nous avons besoin de append() de 1000 objets de la body élément.

Vous pouvez aller à ce sujet comme ceci:

for(x = 0; x < 1000; x++) {
    var element = $('<div>'+x+'</div>');
    $('body').append(element);
}

Cela fonctionne, cependant, il semble inefficace pour moi, car autant que je sache ce qui va causer de 1000 document déplacé. Une meilleure solution serait:

var elements = [];
for(x = 0; x < 1000; x++) {
    var element = $('<div>'+x+'</div>');
    elements.push(element);
}
$('body').append(elements);

Cependant, ce n'est pas un monde idéal et cela déclenche une erreur Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild]. Je comprends que append() ne peut pas gérer des tableaux.

Comment aurais-je à l'aide de jQuery (je sais à propos de la DocumentFragment nœud, mais que j'ai besoin d'utiliser d'autres fonctions jQuery sur l'élément, telles que .css()) ajouter un tas d'objets pour les DOM à la fois pour améliorer les performances?

  • append() ne pas accepter un tableau de chaînes de caractères.
  • la réponse que vous avez approuvé l'est encore plus lent que votre première approche. Regardez les journaux de la console dans ce jsfiddle jsfiddle.net/du2TN/2
  • intéressant, bien qu'il semble que mon code fonctionne en jQuery 1.8 et est la plus rapide des méthodes jQuery. (mise à jour de votre JSfiddle)
  • Bon à savoir 🙂 de toute façon, @jAndi et jackwander la solution est beaucoup plus rapide. Mais si vous préférez utiliser jQuery, quelle que soit vous convient 🙂
  • J'ai besoin d'utiliser jQuery comme ils doivent être jQuery objets afin que je puisse utiliser d'autres fonctions jQuery en eux.
InformationsquelleAutor George Reith | 2012-08-24