Bueno creo que al final lo solucioné, posteo el código por si a alguien le pudiera servir y por si hay alguna crítica:
Código HTML:
Ver original <input type='text' id='cx0' name='coordx[]' size='10' /> <input name="coordy[]" type="text" id="cy0" size="10" /> <input type="button" value="Agregar campo" id='btn' onclick="addI(ID('l'),'input','br');" />
Código Javascript
:
Ver originalvar n=1;
function ID(id){
return document.getElementById(id);
}
function sAt(elemento,atributo,valor){
elemento.setAttribute(atributo,valor);
}
function addI(d,e,f){
var c=document.createElement(e),i=document.createElement(e),b=document.createElement(e),s=document.createElement(f);
sAt(c,'type','text');
sAt(i,'type','text');
sAt(c,'name','coordx[]');
sAt(i,'name','coordy[]');
sAt(c,'id','cx'+n);
sAt(i,'id','cy'+n);
sAt(c,'size','10');
sAt(i,'size','10');
sAt(c,'class','input');
sAt(i,'class','inputy');
sAt(b,'type','button');
sAt(b,'onclick',"removeI(this);");
sAt(b,'value','Eliminar campos');
sAt(b,'class','button');
d.appendChild(c);
d.appendChild(i);
d.appendChild(b);
d.appendChild(s);
n++;
}
function removeI(c){
c.parentNode.removeChild(c.previousSibling.previousSibling);
c.parentNode.removeChild(c.previousSibling);
c.parentNode.removeChild(c.nextSibling);
c.parentNode.removeChild(c);
}
Código CSS:
Ver original.texto {font:100% "Colonna MT"; color:#FFF;}
.input {margin:1.5% 4% 1.5%;}
.inputy {margin:1.5% 1.75% 1.5%;}
.button {margin:1.5% 1.4% 1.5%; margin-right:0;}
li {list-style-type:none;}
#l {position:relative; width:120%; height:100%;}
fieldset {width:32%; height:auto;}
No lo hice con cloneNode() porque no entendí muy bien lo de los hidden, y tampoco entendí lo del DOM de
@zerokilled, si me lo pudiérais explicar (: