Ciao, sei sicuro che il risultato sia proprio quello?
Da quello script, anche eseguendolo la prima volta, ottengo questo:
Cioè viene clonato il contenuto di quell'elemento e quindi appeso dentro lo stesso elemento.codice:<div class="mia_classe"> <input class="a" name="valore[]"> <input class="b" name="valore_b[]"> <input class="a" name="valore[]"> <input class="b" name="valore_b[]"> </div>
Non coincide con ciò che tu hai indicato di ottenere però è esattamente ciò che fa quello script:
che tradotto in umanese significa: prendi l'ultimo elemento .mia_classe e appendici dentro il contenuto del clone di quello stesso elemento.codice:$('.mia_classe').last().append($('.mia_classe').last().clone().html());
Chiaramente non può funzionare come hai supposto.
Il metodo append() infatti inserisce, ciò che gli passi, in fondo al contenuto dell'elemento a cui lo applichi, non di seguito. Potresti invece usare il metodo after() che inserisce, ciò che gli passi, subito dopo l'elemento a cui lo applichi.
Inoltre, il metodo html() non ti serve in questo caso, perché altrimenti viene considerato solo il contenuto dell'elemento e non l'intero elemento.
Una soluzione potrebbe essere questa:
che tradotto significa: prendi l'ultimo elemento .mia_classe e inserisci, dopo di questo, il suo stesso clone.codice:let $ultimoElemento = $('.mia_classe').last(); $ultimoElemento.after($ultimoElemento.clone());


Rispondi quotando