Foros del Web » Programando para Internet » Javascript »

Problemas - removeChild

Estas en el tema de Problemas - removeChild en el foro de Javascript en Foros del Web. Hola a todos: Nunca pense tener este problema, pero pues si que analisandolo seria algo ilogico, aunque se que deve existir alguien que conosca algun ...
  #1 (permalink)  
Antiguo 04/09/2005, 09:58
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 19 años, 4 meses
Puntos: 0
Problemas - removeChild

Hola a todos:

Nunca pense tener este problema, pero pues si que analisandolo seria algo ilogico, aunque se que deve existir alguien que conosca algun metodo o solucion:

Lo que ago es hacer una consulta mysql mediante xmlhttprequest y lo actualizo en un DIV, cada registro de la base de datos o cada dato que se muestra ya en el div, tiene un ID ej:

<div id="base">

<div id="w1" onclick="eliminartag(w1);"><div>resultado 1<div></div>
<div id="w2" onclick="eliminartag(w2);"><div>resultado 2<div></div>
...

</div>

La funcion es esta:

function eliminartag(elemento) {
elemento.parentNode.removeChild(elemento);
}


... EL PROBLEMA ES: que por ejemplo si muestro mis resultados y elimino el id=w1 por ejemplo, y si luego actualizo el resultado para ese div desde mysql, por logica aparecera otro id=w1, y cuando intento borrarlo no se puede, esto quiere decir que no se pueden eliminar elementos con id ya eliminadas...

existe alguna funcion en DOM que funcione como un clear y elimine el historial de nodes, o algo asi

Ayuda porfavor
  #2 (permalink)  
Antiguo 04/09/2005, 10:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Danger_

A ver si te funciona así:

<div onclick="eliminartag(this);"><div>resultado 1<div></div>

de esta forma no se necesitan id y creo (no lo he probado) que te servirá.

Saludos,
  #3 (permalink)  
Antiguo 04/09/2005, 10:57
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias por responder JavierB:

Definitivamente si funciona, PERO el asunto esta asi, lo explicare un poco mas a detalle:

<div id="base">

<div id="w1"><div onclick="eliminartag(w1);">x<div>resultado 1</div>
<div id="w2"><div onclick="eliminartag(w1);">x<div>resultado 2</div>
...

</div>

Creo que no mostre exactamente como tengo los datos y por eso no lo entendiste ( Danger barbaro ! ) ,el caso es que desde ese div interno a un ID, elimine todo el DIV-ID=w1.... o segun el caso.

Asi que si utilizara THIS, eliminaria solo el pequeño div interno, y no el del ID que contienen todo el dato.

El caso es que especifico directamente el id a eliminar y si funciona javier, es solo que cuando actualizo el registro en tiempo real, se crean nuevamente ID=w1, w2, w3, y si uno de esos ID ya fue eliminado ya no me permite eliminarlo. , ese es el mero problema.
  #4 (permalink)  
Antiguo 04/09/2005, 11:12
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

No es que seas barbaro, solo ha habido una falta de entendimiento Prueba esto otro.

<div id="w1"><div onclick="eliminartag(this.parentNode);">x<div>resu ltado 1</div>

Saludos,

P.D. Casi seguro que me he olvidado algo y cuando aparezca por aquí caricatos (¡Hola! ) lo soluciona y/o simplifica.
  #5 (permalink)  
Antiguo 04/09/2005, 11:24
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 19 años, 4 meses
Puntos: 0
No soy un experto en javascript ( Como tú o caricatos ) pero pense en algo de parent.this o algo asi , Pero nunca dí, funciono ! , muchas gracias JavierB esta es como la millonesima vez que me salvas la fuente !

Nota:
Quizaz tambien ubiera funcionado crear los lementos desde appendchild ( DOM ) y no solo cargarlos desde mysql con xmlhttprequest y de igual manera eliminarlos, no lo probe ni lo hice porque ubiera sido mucho MAS laborioso que un simple "this.parentNode" .

Saludos !
  #6 (permalink)  
Antiguo 04/09/2005, 12:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Cita:
Iniciado por Danger_
esta es como la millonesima vez que me salvas la fuente !
Os he dicho mil millones de veces que no me gusta que exagereis Bueno... me alegro de que al final te haya funcionado
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 11:31.