Foros del Web » Programando para Internet » Javascript »

getElementsByName y removeChild

Estas en el tema de getElementsByName y removeChild en el foro de Javascript en Foros del Web. Tengo el siguiente codigo que me funciona bien en FireFox. var textOculto = 'EntregaSel'+caja+fila; var objeto = eval("document.getElementsByName('"+textOculto+"') "); try { oForm.removeChild(objeto[0]); } catch (e) ...
  #1 (permalink)  
Antiguo 09/09/2007, 12:26
 
Fecha de Ingreso: abril-2007
Ubicación: España
Mensajes: 19
Antigüedad: 17 años
Puntos: 1
Pregunta getElementsByName y removeChild

Tengo el siguiente codigo que me funciona bien en FireFox.

var textOculto = 'EntregaSel'+caja+fila;
var objeto = eval("document.getElementsByName('"+textOculto+"') ");
try {
oForm.removeChild(objeto[0]);
} catch (e) {
alert(e);
}

Resulta que en IE me envia error al momento de aplicar removeChild al elemente. La variable "objeto" me devuelve 1, es decir, que existe el objeto. Por otra parte como puedo obtener mas información del objeto "e" del catch.
Muchas gracias por las respuesta.

Saludos,
Cristian
  #2 (permalink)  
Antiguo 09/09/2007, 18:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: getElementsByName y removeChild

Hola:

Lamentablemente explorer implementa getElementsByName por el atributo id, así que te recomiendo que uses directamente el método getElementById()... si se tratase de algun elemento donde importe que se use el atributo name, tal vez sea mejor plantear referenciarlo a partir de la colección correspondiente (document.forms, document.images...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 10/09/2007, 05:17
 
Fecha de Ingreso: abril-2007
Ubicación: España
Mensajes: 19
Antigüedad: 17 años
Puntos: 1
Re: getElementsByName y removeChild

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Lamentablemente explorer implementa getElementsByName por el atributo id, así que te recomiendo que uses directamente el método getElementById()... si se tratase de algun elemento donde importe que se use el atributo name, tal vez sea mejor plantear referenciarlo a partir de la colección correspondiente (document.forms, document.images...)

Saludos
document.inputs.length me da error.
Por otra parte los input que deseo eliminar son de tipo hidden
  #4 (permalink)  
Antiguo 10/09/2007, 05:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: getElementsByName y removeChild

Hola:

La colección inputs no existe, pero si es un control del formulario, se puede obtener fácilmente los controles con igual atributo name...

Por ejemplo, si tu formulario se llama ejemplo y los controles tienen el name="textoOculto"...

El array sería:

document.forms.ejemplo.textoOculto...

O sea que para borrar el primero sería:

yo = document.forms.ejemplo.textoOculto[0];
yo.parentNode.removeChild(yo);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 11/09/2007, 14:36
 
Fecha de Ingreso: abril-2007
Ubicación: España
Mensajes: 19
Antigüedad: 17 años
Puntos: 1
Re: getElementsByName y removeChild

Solucionado con las siguiente líneas:

var textOculto = eval('document.altaNuevaPartida.EntregaSel'+caja+f ila);
textOculto.parentNode.removeChild(textOculto);

Muchas gracias
  #6 (permalink)  
Antiguo 11/09/2007, 15:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: getElementsByName y removeChild

Hola:

Un último apunte, no es necesario el uso de eval, ya que si quieres concatenar taxto para obtener un objeto, puedes hacerlo directamente entre corchetes:

var textOculto = document.altaNuevaPartida["EntregaSel" + caja + f ila];

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 04:45.