no hace falta índices para saber dónde haces click o cómo ubicar elementos, tenés que manejarte con el elemento contenedor porque lo que querés hacer es copiar una estructura para duplicarlo y para los eventos también
Fijate que sencillo, primero me obtengo todo el html que está en #telefonos porque eso es lo que quiero duplicar, cuando hago click en clase #anadir-campo borro el id, le agrego la clase .eliminar-campo y le cambio el texto, luego agrego el html con todos los campos que seria la nueva fila al contenedor #telefonos.
Para eliminar solo me muevo desde el elemento que hicieron click hasta el elemento contenedor que le indico a closest y lo borro, en este caso es el div .clonar que seria la fila.
Código HTML:
Ver original <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $( function (){
fila = $('#telefonos').html();
$('#anadir-campo').live('click', function(e){
$(this).removeAttr('id').addClass('eliminar-campo').text('Eliminar');
$('#telefonos').append(fila);
});
$('.eliminar-campo').live('click', function(){
$(this).closest('.clonar').remove();
});
});
<input name="cont-telefono1" id="cont-telefono1" class="number ignore" maxlength="9" /></label> <input name="cont-extension1" id="cont-extension1" class="number cont-extension ignore" maxlength="4" /></label>
borre todos esos atributos indices que tenias y para que funcione el label sin tener que cambiar el atributo for puse el input adentro
Y podés agregarle otros campos como característica, tipo, etc y no hay que modificar nada
aca tenés otro ejemplo
http://www.forosdelweb.com/f127/jque...tro-td-869391/