ugrás a tartalomhoz

jquery copy tr

butcherg · 2011. Feb. 7. (H), 16.43
Üdv!

Van ez a szerintem sokmindenki számára ismert jquery-s kód:
var $cloned = $('#tablem tbody>tr:last').clone(false);
oldIndex = $cloned.find('.valami').attr('name').match(/\d+/);
newIndex = parseInt(lastIndex,10)+1;

$cloned.find('.valami').each(function(){
  var newName = $(this).attr('name').replace(oldIndex, newIndex);
}
$cloned.insertAfter('#tablem tbody>tr:last');
ami azt csinálja, hogy megkeresi a #tablem utolsó sorát és lemásolja azt.
Nekem olyan megoldás kéne ami sem csak az uolsó sort másolja le, hanem az összeset. Ez még könnyen meg is oldahtó, ha lecserélem az első sort erre:
var $cloned = $('#tablem tbody>tr').clone(false);

Viszont nekem arra is szükségem van, hogy a soronként a newIndex értéke 1-el növekedjen.
Ha csak simán berakom newIndex++ -t akkor mivel a ciklus mindig végigfut, minden lemásolt elem nevében szereplő szám értéke 1-el növekedni fog.
Hogy tudom ezt elkerülni?
 
1

Nem így működik

Poetro · 2011. Feb. 7. (H), 20.54
Mivel a fenti kód eleve nem működik, és az se tiszta mit akarsz végrehajtani, kérlek írd le újra, akár pszeudó kóddal, akár folyamatábrával. Miért növekedjen a newIndex értéke? Mire használod? Miért nem növeled az each "ciklusban"? A name attribútumot meg is akarod változtatni? És mire szeretnéd változtatni? Mire használod a lastIndex értéket, és az honnan jön? Mi a kapcsolat az oldIndex és a lastIndex között? A kód szerint az oldIndex vagy tömb, vagy null – mivel a match ezeket adja vissza –, erre nem fog működni a replace, mivel az vagy reguláris kifejezést, vagy stringet vár első paraméternek. Valamint ez nem fogja megváltoztatni a name attribútumot, mivel az attr függvény az attribútum értékét adja vissza. Utána még ezt az értéket be is kellene állítani.