2010-01-05 6 views
23

Édition: À partir de jQuery 1.4, l'utilisation de $() fonctionnera comme décrit ci-dessous.Comment créer un résultat jQuery vide


J'ai besoin de boucle à travers un réseau et créer un certain nombre d'éléments que je veux avoir dans un seul objet de résultat jQuery.

for (var i = 0; i < 10; ++i) { 
    $myJQueryObj = $myJQueryObj.add($("<span>blahblah</span>")); 
} 

Le problème avec cela, cependant, est que vous avez besoin d'un objet jQuery pour commencer, et vous voulez évidemment commencer vide. Dans l'exemple ci-dessus, comment dois-je initialiser $myJQueryObj?

Les exemples suivants ne fonctionnent pas, car ils ont tous sélectionner l'objet document:

$('') 
$() 
$(null) 
$(false) 

Ces fonctionnent ... mais ...

$('#nonExistantElement') // yuck 
$().slice(0,0)   // surely there's a nicer way? 

Y at-il une meilleure façon?

Répondre

46

Yep. Essayez $([]). La raison pour laquelle $() ne fonctionne pas, c'est que jQuery attend un contexte, et sans aucun fourni, sera document comme contexte. Beaucoup de choses dépendent de cette hypothèse étant vrai, donc changer $() pour signifier "donnez-moi l'ensemble vide" serait au mieux problématique.

11

Ah, je l'ai compris juste après avoir écrit la question. Voici ce que j'ai trouvé, au cas où quelqu'un d'autre serait intéressé:

$([])