Foros del Web » Programando para Internet » Javascript »

Removechild

Estas en el tema de Removechild en el foro de Javascript en Foros del Web. HOLA No se que estpy haciendo mal, pero estpy chato.... a ver si alguien me ayuda... El nombre del id es de este tipo: tablenombre ...
  #1 (permalink)  
Antiguo 17/02/2010, 18:44
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Removechild

HOLA

No se que estpy haciendo mal, pero estpy chato.... a ver si alguien me ayuda...


El nombre del id es de este tipo: tablenombre
Lo que quiero hacer es remover:

Código:
for i=1 to 100 step 1
asi agrego
Código:
document.body.removeChild(document.getElementById("tableP5C1"&[i]).CloneNode(true))
asi estoy quitando....aqui esta el problema
Código:
document.body.getElementById("tableP5C1"&[i]).removeChild(document.body.getElementById("tableP5C1"&[i]))
Código:
next

Estoy chato...
  #2 (permalink)  
Antiguo 18/02/2010, 07:49
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Removechild

No podés remover un nodo de él mismo, tendrías como mínimo que acceder a su nodo padre:

Código Javascript:
Ver original
  1. var e = document.elementById("loquesea");
  2. e.parentNode.removeChild(e);

Por otro lado, ¿usas removeChild para agregar? ¿por qué? Usa appendChild:

Código Javascript:
Ver original
  1. var e = document.elementById("loquesea").cloneNode();
  2. document.getElementById("elemento al que se debe agregar").appendChild(e)


Saludos.
  #3 (permalink)  
Antiguo 18/02/2010, 13:16
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Removechild

HOLA

Gracias. Si. He probado asi y me resulta como lo expones.....pero el problema que tengo es que cuando llego a borrar todo, luego no me repite los nuevos IDs si es que quiero repetirlos, es decir, como que borrara todos los ids....es decir, resulta bien, pero el problema esta en el momento que por causalidad uno le da un clik de mas y "busca seguir borrando" cuando no hay nada mas que borrar...es decir falta un tope....
o sea no tengo problema alguno con ese codigo pero que se frene cuando quede 1 y asi yo pueda sehuir repitiendo los ids de nuevo

Lo de removechild en vez de appendchild es un despite mental al escribir el codigo en el foro...
Thanks
Luque
  #4 (permalink)  
Antiguo 18/02/2010, 14:52
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Removechild

¿podrías poner un ejemplo en el que te suceda este problema? la explicación no me resulta clara.
  #5 (permalink)  
Antiguo 18/02/2010, 15:21
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Removechild

no...disculpa

ya vi cual es el problema...
el tema es que primero estoy renombrando todos los ids... de P5C1... les estoy agregando el apelativo 'table' o cualquier otro podria ser...

Código:
document.getElementById("P5C1"&[i]).id = "tableP5C1"&[i]

luego de renombrarlo lo appendchileo para que tenga hijos...

Código:
document.body.appendChild(document.getElementById("tableP5C1"&[i]).CloneNode(true))
y en otro boton va el codigo que recien expusiste...

Por lo tanto al borrar con el codigo recien expuesto por tu, me borra tambien el primer sistema de ids (borra los inputs), por lo que lo borra y luego al aplicar el appendchileo no me lo toma porque ya no existen (solo quedan los nombres de los inputs...

Voy a ver que hago...quizas tenga que renombrar los ids,pero ahi me tomaria todos los ids....mmmmmmhhhhh....veré que haré ...pero tu codigo funciona bien entonces....

mmmmhhh....

si sabes me dices?

Gracias

Luque
  #6 (permalink)  
Antiguo 18/02/2010, 16:30
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Removechild

Entonces el problema surge porque estás en cierta forma abusando el sistema. Un atributo ID debe ser único, al repetirlo obtenés comportamientos extraños

¿Qué es cada elemento? ¿por qué los generás via Javascript? ¿qué es lo que necesitás hacer con ellos? Contestando estas preguntas a lo mejor te puedo sugerir una via alternativa


Saludos.
  #7 (permalink)  
Antiguo 18/02/2010, 16:49
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Removechild

Si...el id es unico. Lo que hago es renombrarlo para que quede clonado...asi queda con otro id distinto y no se hace repetitivo...el id.

Son inputs y un select.

javascript o vbscript porque no se otro lenguaje... y necesito poder extraer los datos con activex para enviarlo a excel en un pc unico (no es en red ni para internet).
El objetivo: es poder generar una celula de codigo, por decirlo asi, que me sirva de base instructiva para poder aplicarlo en distintos pequeños programas que estoy haciendo....ya que estoy tratando de poder optimizar el envio de datos a excel mediante codigo mas pequeño en cuanto a lineas....

el unico problema restante que tengo aparte de esto es poder recorrer todos los ids existentes, pero que no son secuenciales...en estos instantes tengo distintos ids pero aplico la instruccion FOR para 100 repeticiones por lo que estaba tratando de ver las instruccion try cath para poder aplicarlos solo de una forma
es decir por ejemplo tengo P5C1 AL P5C2 Y DESPUES SALTO al P5C10 AL P5C14 Y LUEGO AL P5C21 AL P5C22 ETC.., por lo que no son secuenciales....pero bueno, eso es problema aparte...
  #8 (permalink)  
Antiguo 19/02/2010, 09:10
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Removechild

Creo que una solución posible puede ser poner todos los ID en un vector (array). De esa forma podés recorrerlos secuencialmente sin dificultad. Por otro lado, como el vector solamente guarda una referencia al nodo, no resulta una sobrecarga de procesamiento o memoria así luego tengas 1000 en vez de 100 :)

Podrías hacer algo como (por ejemplo)
Código Javascript:
Ver original
  1. nodo = document.getElementById("tableP5C1"&[i]).CloneNode(true);
  2. document.body.appendChild(nodo);
  3. nodos[nodos.length] = nodo;

Saludos.
  #9 (permalink)  
Antiguo 22/02/2010, 11:05
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Removechild

hola
gracias lo solucione...
lo unico que no entiendo es la instruccion "nodes"
de todas formas tema cerrado
voy a abrir otro pero es otro el problema seguidito que me ocurre dentro del mismo codigo....
gracias de nuevo
Luque

Etiquetas: removechild
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 23:18.