Foros del Web » Programando para Internet » Javascript »

Eliminar elmento

Estas en el tema de Eliminar elmento en el foro de Javascript en Foros del Web. Mediante el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código javascript : Ver original var ancla = document. getElementById ( "label_test" ) ;           ...
  #1 (permalink)  
Antiguo 22/04/2009, 19:18
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Eliminar elmento

Mediante el siguiente código:
Código javascript:
Ver original
  1. var ancla = document.getElementById("label_test");
  2.                         var explicacion = document.createElement("span");
  3.             var salto_linea = document.createElement("br");
  4.             explicacion.setAttribute("id", "explicacion");
  5.             explicacion.innerHTML = "pruebaaaaaa";
  6.             explicacion.style.visibility = "visible";
  7.                    
  8.             ancla.appendChild(salto_linea);
  9.             ancla.appendChild(explicacion);
Se crean dos elementos un <span> y un elemento <br />, la situación hipotética que deben ocupar ambos puede verse comentada en el siguiente código html, solo como muestra de donde quiero situarlo).

Código html:
Ver original
  1. <form id="formulario_registro" name="formulario_registro" action="?accion=registrar" method="post" enctype="application/x-www-form-urlencoded">
  2.     <label>Email (será tu nombre de usuario): <br />
  3.     <input type="text" id="email" name="email" title="Email de usuario" value="" /></label><br />
  4.     <label id="label_test">Contraseña:<br />
  5.     <input  id="pass" name="pass" type="password" title="Contraseña" value="" oncopy="return false" onpaste="return false" oncut="return false" /><span id="info"></span></label><br /><!--<span id="explicacion"></span><br />-->

El problema ocurre cuando intento borrar ambos elementos, lo estoy intentando con:
Código javascript:
Ver original
  1. ancla.removeChild("explicacion");

Pero no hay manera, por cierto estoy usando como "ancla" para situar los elementos creadores el label que contiene al campo "pass", es decir "label_test", sin embargo como puede verse en el código html los elementos creados van fuera del cierre de dicha etiqueta label, inmediatamente después de hecho, supongo que esto puede influir en el problema de su borrado ya que técnicamente no es un hijo y por eso no tenga referencia, sin embargo si lo posiciona correctamente con appendChild() ¿alguna forma más correcta, o al menos más coherente, de situarlos en su posición y poder borrarlos?
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."

Última edición por Dude--; 22/04/2009 a las 19:55
  #2 (permalink)  
Antiguo 22/04/2009, 19:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Eliminar elmento

No entendí muy bien. Por un lado appendChild() es para añadir, no para borrar (tal vez hayas copiado mal en el ejemplo).

Puedes hacer algo como esto:
Código javascript:
Ver original
  1. elemento.parentNode.removeChild(elemento);
Donde elemento sería el elemento a borrar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/04/2009, 19:55
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Eliminar elmento

Ciertamente copié mal, sería:
Código javascript:
Ver original
  1. ancla.removeChild("explicacion");

Pero esto como ya dije, no funciona.

Cita:
Pero no hay manera, por cierto estoy usando como "ancla" para situar los elementos creadores el label que contiene al campo "pass", es decir "label_test", sin embargo como puede verse en el código html los elementos creados van fuera del cierre de dicha etiqueta label, inmediatamente después de hecho, supongo que esto puede influir en el problema de su borrado ya que técnicamente no es un hijo y por eso no tenga referencia, sin embargo si lo posiciona correctamente con appendChild() ¿alguna forma más correcta, o al menos más coherente, de situarlos en su posición y poder borrarlos?
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #4 (permalink)  
Antiguo 22/04/2009, 19:58
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Eliminar elmento

¿Ya intentaste como te indiqué? elemento.parentNode.removeChild(elemento);

Así ya tomarás como referencia el nodo padre para borrar el elemento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 22/04/2009, 20:08
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Eliminar elmento

Cita:
Iniciado por David el Grande Ver Mensaje
¿Ya intentaste como te indiqué? elemento.parentNode.removeChild(elemento);

Así ya tomarás como referencia el nodo padre para borrar el elemento.
Si ya lo probé y no funciona.
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #6 (permalink)  
Antiguo 22/04/2009, 20:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Eliminar elmento

Yo lo probé y funcionó sin problemas. ¿Cómo lo intentaste tú?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/04/2009, 20:24
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Eliminar elmento

Pues con:
Código javascript:
Ver original
  1. ancla.parentNode.removeChild("explicacion");
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #8 (permalink)  
Antiguo 22/04/2009, 20:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Eliminar elmento

Es que yo me refería a:
Código javascript:
Ver original
  1. var elemento = document.getElementById("explicacion");
  2. elemento.parentNode.removeChild(elemento);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 22/04/2009, 20:29
Avatar de Dude--  
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Respuesta: Eliminar elmento

Vale ahora si y el <br /> como puedo borrarlo sin que borre el resto de br´s del form?
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."
  #10 (permalink)  
Antiguo 22/04/2009, 20:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Eliminar elmento

Puedes asignar un id al <br />. Aunque en realidad, ese salto de línea sobra, si le pones style.display = "block" al span, o mejor, si lo cambias por un div, ya se comportará como un elemento en bloque y eso hará que los elementos siguientes queden debajo y no al lado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 23/04/2009, 01:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Eliminar elmento

Hola:

Si el salto es el previousSibling, puedes borrarlo antes:

elemento.parentNode.removeChild(elemento.previousS ibling);
elemento.parentNode.removeChild(elemento);

Y si quisieras asegurarte de borrarlo todo, se puede fácilmente con un bucle:
with (elemento.parentNode) while (hasChildNodes()) removeChild(firstChild);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 00:13.