2009-09-04 9 views
5

Dans le code ci-dessous, j'essaie de parcourir chaque noeud enfant et d'ajouter l'enfant à un autre élément - quelle est la syntaxe correcte dans la boucle?jQuery ajoute des nœuds enfants pour chaque

$(this).children().each( 
    $(div).appendChild(this.childNodes.length - 1); 
); 

Répondre

8

Dans la fonction each(), this fait référence à la chose sur laquelle vous itérez, dans ce cas le children(). Ce n'est pas le this de l'objet jQuery d'origine.

Par conséquent:

$(this).children().each(function() {  
    $(div).appendChild($(this)); 
}); 
0

Vous devez utiliser un rappel de fonction ou anonyme each appel:

$(this).children().each(function() { 
    $(div).appendChild(this.childNodes.length - 1); 
}); 

ou

function doSomething() { 
    $(div).appendChild(this.childNodes.length - 1); 
} 

$(this).children().each(doSomething); 

Je ne suis pas sûr si votre code n'a pas pu être amélioré mais il Je peux dire peu quand je n'en vois que la petite partie.

Questions connexes