2009-09-04 12 views
5

Nel codice seguente sto provando ad eseguire il ciclo di ogni nodo figlio e ad aggiungere il figlio a un altro elemento: qual è la sintassi corretta all'interno del ciclo?jQuery aggiungi nodi figlio per ogni

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

risposta

8

All'interno della funzione each(), this si riferisce alla cosa su cui si sta iterando, in questo caso lo children(). Non è lo this dell'oggetto jQuery originale.

Pertanto:

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

È necessario utilizzare un callback funzione o funzione anonima in each chiamata:

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

o

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

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

non sono sicuro se il codice non poteva stata migliorata, ma c'è è poco che posso dire quando ne vedo solo una piccola porzione.