Foros del Web » Programando para Internet » Javascript »

Problema al borrar elementos con DOM

Estas en el tema de Problema al borrar elementos con DOM en el foro de Javascript en Foros del Web. Hola, tengo un problema con el código de abajo, en Firefox funciona bien, pero no en IE . La función agregar va bien, pero no ...
  #1 (permalink)  
Antiguo 30/09/2008, 17:47
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Problema al borrar elementos con DOM

Hola, tengo un problema con el código de abajo, en Firefox funciona bien, pero no en IE. La función agregar va bien, pero no la de borrar, solo funciona con el primer elemento (el que ya esta en el div) pero luego no puede borrar ninguno más.
Cómo lo puedo solucionar?

Código HTML:
<html>
<head>
<script>

var cont = 2;

function agregarContrato() {

var input = document.createElement("input");
var img = document.createElement("img");
var br = document.createElement("br");

img.setAttribute("src", "no.png");
img.setAttribute("onclick", "borrar("+cont+")");
img.setAttribute("id",  cont+".a");
          
br.setAttribute("id", cont+".b");
          
input.setAttribute("type", "text");
input.setAttribute("name", "contrato[]");
input.setAttribute("id", cont);

document.getElementById("contratos").appendChild(input);
document.getElementById("contratos").appendChild(img);
document.getElementById("contratos").appendChild(br);

cont++;

}
      
      
function borrar(id){
      
var input =document.getElementById(id);
var img =document.getElementById(id+".a");
var br = document.getElementById(id+".b");

var padre = input.parentNode;

padre.removeChild(input);
padre.removeChild(img);
padre.removeChild(br);
}

</script>
</head>
<body>
<div id="contratos"><input type="text" id="1" /><img src="no.png" onclick="borrar(1);" id="1.a"><br id="1.b" />
</div>
<a href="#" onclick="javascript:agregarContrato();">Agregar</a>
</body>
</html> 

Muchas gracias.
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #2 (permalink)  
Antiguo 30/09/2008, 18:16
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: Problema al borrar elementos con DOM

Hola:

Lo que tienes mal es un id numérico... deben empezar por una letra o guión bajo (no recuerdo si valen otras cosas).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 30/09/2008, 20:31
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: Problema al borrar elementos con DOM

Hola caricatos, lo cambie por este código pero sigue sin funcionar.

Código HTML:
<html>
<head>
<script>
var cont = 2;


function agregarContrato() {

var input = document.createElement("input");
var img = document.createElement("img");
var br = document.createElement("br");

img.setAttribute("src", "no.png");
img.setAttribute("onclick", "borrar("+cont+")");
img.setAttribute("id",  "img."+cont);
          
br.setAttribute("id", "br."+cont);
          
input.setAttribute("type", "text");
input.setAttribute("name", "contrato[]");
input.setAttribute("id", "input."+cont);

document.getElementById("contratos").appendChild(input);
document.getElementById("contratos").appendChild(img);
document.getElementById("contratos").appendChild(br);

cont++;


}


function borrar(id){
      
var input =document.getElementById("input."+id);
var img =document.getElementById("img."+id);
var br = document.getElementById("br."+id);

var padre = input.parentNode;

padre.removeChild(input);
padre.removeChild(img);
padre.removeChild(br);

}

</script>
</head>
<body>

<div id="contratos"><input type="text" id="input.1" /><img src="no.png" onclick="borrar(1);" id="img.1"><br id="br.1" />
</div>

<a href="#" onclick="javascript:agregarContrato();">Agregar</a>

</body>
</html> 
Gracias
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #4 (permalink)  
Antiguo 30/09/2008, 23:29
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: Problema al borrar elementos con DOM

Hola:

Acabo de probarlo en ff y va bien, creo que a los id's tampoco se le pueden poner puntos... Cuando tengo problemas de este tipo suelo poner alertas para comprobar el funcionamiento...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 01/10/2008, 11:08
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: Problema al borrar elementos con DOM

Hola nuevamente caricatos, quite los puntos en los id, pero sigue sucediendo el mismo problema.


Puse un alert dentro de la función borrar, y solo se muestra cuando elimino el input de origen (el que ya estaba en el div), por lo que supongo que nunca se ejecuta la función para los demás. Qué puede ser?


IE Developer Toolbar



Gracias
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/

Última edición por hgp147; 01/10/2008 a las 12:46
  #6 (permalink)  
Antiguo 03/10/2008, 13:45
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: Problema al borrar elementos con DOM

SOLUCIONADO.
Si a alguien le interesa en este post http://www.forosdelweb.com/f13/elimi...amente-416927/ encontre la solución.
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
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:20.