Foros del Web » Programando para Internet » Node.js »

ayuda con cloneNode

Estas en el tema de ayuda con cloneNode en el foro de Node.js en Foros del Web. hola Tengo el siguiente inconveniente estoy utilizando la funcion cloneNode para copiar el contenido de un bloque html conpuesto por <li>, <p>, <div> y <input> ...
  #1 (permalink)  
Antiguo 22/09/2010, 10:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
ayuda con cloneNode

hola

Tengo el siguiente inconveniente estoy utilizando la funcion cloneNode para copiar el contenido de un bloque html conpuesto por <li>, <p>, <div> y <input>

Lo que deseo hacer es quitar elementos es decir una vez clonado el bloque poderle quitar algunos divs que no necesito

mi codigo es este

Código Javascript:
Ver original
  1. ele = document.getElementById('litel').cloneNode(true);
  2.     ele.id = '';
  3.     for(var i=1;i<ele.getElementsByTagName('div')[0].length;i++){
  4.         //ele.removeChild(ele.lastChild);
  5.         alert(ele.parentNode);
  6.     }
  7.     eletel = ele.getElementsByTagName('div')[0];
  8.     eletel.id = 'telefonos'+nu;
  9.     contenedor.relatedElement = eletel;
  10.     eleinp = ele.getElementsByTagName('input')[0];
  11.     eleinp.id = 'telefono'+nu;
  12.     eleinp.value = '';
  13.     eleinp.className = 'caja';
  14.     eleinp.setAttribute('class','caja');   
  15.     contenedor.relatedElement = eleinp;
  16.     eleimg = ele.getElementsByTagName('img')[0];
  17.     eleimg.onclick = function () {ctel("telefonos"+nu)}
  18.     contenedor.appendChild(ele);

este es el html
Código HTML:
Ver original
  1. <li class="clearfix" id="litel">
  2.               <label for="telefono">Telefono</label>
  3.               <div id="telefonos" style="float:left;">
  4.                 <p><input type='text' name='telefonos[]' id='telefono0' class="caja" maxlength="15" onkeypress="return solo_numeros(event);" /><img src="../images/mas_48x48.png" alt="Agregar mas telefonos" title="Agregar mas telefonos" style="cursor:pointer;float:right;" onclick="ctel('telefonos');"/></p>
  5.               </div>
  6.               <div class="clear"></div>
  7.               <p id='telefono_error' class='error'>Digite un numero de telefono.</p>
  8.             </li>

Esta estructura html cambia ya que se pueden agregar mas cajas de texto o no dependiendo de la persona

la parte que no me funciona y con la que tengo problemas es con el loop for no se como quitar los divs que no necesito

Gracias
  #2 (permalink)  
Antiguo 22/09/2010, 11:32
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ayuda con cloneNode

no tengo claro cuales son elementos que deseas retener. de todos modos, el bucle no te funciona porque estas leyendo la propiedad length de un elemento y no de la coleccion devuelta por getElementsByTagName. fijate que tienes un corchete con un cero, el cual indica el primer elemento de la coleccion y este a su vez representa un elemento html.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/09/2010, 13:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: ayuda con cloneNode

Muchas gracias por la respuesta.

Veras el corchete o el elemento cero es por que dentro de ese elemento se alojan divs que son creados de forma dinamica y lo que quiero es quitar esos divs que se crean de forma dinamica y que a su vez hacen parte del div [0] por asi llamarlo he hehco esto pero no los quita

Código Javascript:
Ver original
  1. ele = document.getElementById('litel').cloneNode(true);
  2.     ele.id = '';
  3.     var tel = ele.getElementsByTagName('div')[0];
  4.     var tels = tel.getElementsByTagName('div');
  5.     for(var i=0;i<tels.length;i++){
  6.         alert(tels[i]);
  7.         ele.getElementsByTagName('div')[0].removeChild(tels[i]);
  8.     }

pero solo quita un elemento y la verdad no se que mas puedo utilizar o que es lo qeu estoy haciendo mal
  #4 (permalink)  
Antiguo 22/09/2010, 13:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ayuda con cloneNode

tienes que tener cuidado porque los HTMLCollection son activos. quiere decir que las colecciones se actualizan cuando existe un cambio en la estructura HTML. o sea, si eliminas o agregas elementos, la coleccion se actualiza. en tu caso, tienes la variable i para recorrer los elementos. cuando eliminas uno, length tiene un valor distinto, la variable i se actualiza, al final del primer ciclo se ha saltado un elemento. ¿que puedes hacer? en lugar de usar un contador, siempre eliminas el primer elemento de la coleccion. el bucle lo controlas solo leyendo la longitud de la coleccion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 22/09/2010, 15:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: ayuda con cloneNode

hola y gracias por la respuesta.

La verdad no entiendo lo que quieres decir ya q no tengo que mas contar o tomar como contador. ya que dentro de la coleccion hay mas elementos asi qeu no sabria que tomar como contador o como tomar los divs creados de otra forma.

Gracias por su tiempo

Etiquetas: javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:32.