Foros del Web » Programando para Internet » Javascript »

removechild IE

Estas en el tema de removechild IE en el foro de Javascript en Foros del Web. Buenas tardes: Yo tengo el siguiente código Código HTML: <script type= "text/javascript" > function agregarcont_fila(idTabla, arrayContenido){ var tr = document.createElement("tr"); tr.setAttribute("id","tr"+cont_fila_tarea); var td = document.createElement("td"); ...
  #1 (permalink)  
Antiguo 17/03/2010, 13:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 14
Antigüedad: 14 años, 2 meses
Puntos: 0
removechild IE

Buenas tardes:

Yo tengo el siguiente código
Código HTML:
<script type="text/javascript">

function agregarcont_fila(idTabla, arrayContenido){
	var tr = document.createElement("tr");
	tr.setAttribute("id","tr"+cont_fila_tarea);
	
	var td = document.createElement("td"); 
	td.style.width='30px';
	tr.appendChild(td);
	
	var td = document.createElement("td");
	td.style.width='160px';
	td.innerHTML = arrayContenido[0];
	tr.appendChild(td);
	
	var td = document.createElement("td");
	td.style.width='30px';
	tr.appendChild(td);
	
	var td = document.createElement("td");
	td.innerHTML = arrayContenido[1];
	tr.appendChild(td);
	
	var td = document.createElement("td");
	td.style.width='20px'; 
	tr.appendChild(td);
	
	var td = document.createElement("td");
    td.innerHTML = arrayContenido[2];
	tr.appendChild(td);
	
	var td = document.createElement("td");
	td.style.width='10px'; 
    td.innerHTML = arrayContenido[3];
	tr.appendChild(td);
	
	obj1 = document.getElementById(idTabla);
	obj1.lastChild.appendChild(tr);
}

cont_fila_tarea=1;
cont_fila_creador=1;
cont_fila_responsable=1;
cont_fila_asignado=1;
cont_fila_delegado=1;

function agregarFila(idtabla,textCombo, textInput){
	contenido = new Array();
	if (idtabla=="tablaTarea"){
		idelemento="img"+[cont_fila_tarea];
		combo = "comboTarea["+cont_fila_tarea+"]";
		input = "textTarea["+cont_fila_tarea+"]";
		contenido[0] = "<label class='FormLabel' id='id_15'>Tarea</label>";
		contenido[1] = "<select id='comboTarea["+cont_fila_tarea+"]' name='comboTarea["+cont_fila_tarea+"]'><option value='"+textCombo+"' selected>Contiene</option><option value='2'>No contiene</option><option value='3'>Contiene la palabra completa</option><option value='4'>No contiene la palabra completa</option></select>";
		contenido[2] = "<input class='form-text' name='textTarea["+cont_fila_tarea+"]' value='"+textInput+"' size='50'>";
		contenido[3] = "<a href='javascript: borrarFila(\""+idtabla+"\",\""+idelemento+"\");'><img id=\""+idelemento+"\" src='/html/img/iconos/01_minus.gif'  title='Añadir criterio' vspace=0 height=9 width=9 /></a>";
		agregarcont_fila(idtabla,contenido);
		cont_fila_tarea++;
		cmp = document.getElementById("numtarea");
 		cmp.value = cont_fila_tarea;
	}else if (idtabla=="tablaCreado"){
		idelemento="img"+[cont_fila_creador];
		contenido[0] = "<label class='FormLabel' id='id_15'>Creado por</label>";
		contenido[1] = "<select id='comboCreado["+cont_fila_creador+"]' name='comboCreado["+cont_fila_creador+"]'><option value='1' selected>Contiene</option><option value='2'>No contiene</option><option value='3'>Contiene la palabra completa</option><option value='4'>No contiene la palabra completa</option></select>";
		contenido[2] = "<input class='form-text' name='textCreado["+cont_fila_creador+"]' value='"+textInput+"' size='50'>";
		contenido[3] = "<a href='javascript: borrarFila(\""+idtabla+"\",\""+idelemento+"\");'><img id=\""+idelemento+"\" src='/html/img/iconos/01_minus.gif'  title='Eliminar criterio' vspace=0 height=9 width=9 /></a>";
		agregarcont_fila(idtabla,contenido);
		cont_fila_creador++;
		cmp = document.getElementById("numcreado");
 		cmp.value = cont_fila_creador;
	}else if (idtabla=="tablaAsignado"){
		idelemento="img"+[cont_fila_asignado];
		contenido[0] = "<label class='FormLabel' id='id_15'>Asignado a</label>";
		contenido[1] = "<select id='comboAsignado["+cont_fila_asignado+"]' name='comboAsignado["+cont_fila_asignado+"]'><option value='1' selected>Contiene</option><option value='2'>No contiene</option><option value='3'>Contiene la palabra completa</option><option value='4'>No contiene la palabra completa</option></select>";
		contenido[2] = "<input class='form-text' name='textAsignado["+cont_fila_asignado+"]' value='"+textInput+"' size='50'>";
		contenido[3] = "<a href='javascript: borrarFila(\""+idtabla+"\",\""+idelemento+"\");'><img id=\""+idelemento+"\" src='/html/img/iconos/01_minus.gif'  title='Eliminar criterio' vspace=0 height=9 width=9 /></a>";
		agregarcont_fila(idtabla,contenido);
		cont_fila_asignado++;
		cmp = document.getElementById("numasignado");
 		cmp.value = cont_fila_asignado;
	}else if (idtabla=="tablaDelegado"){
		idelemento="img"+[cont_fila_delegado];
		contenido[0] = "<label class='FormLabel' id='id_15'>Delegado en</label>";
		contenido[1] = "<select id='comboDelegado["+cont_fila_delegado+"]' name='comboDelegado["+cont_fila_delegado+"]'><option value='1' selected>Contiene</option><option value='2'>No contiene</option><option value='3'>Contiene la palabra completa</option><option value='4'>No contiene la palabra completa</option></select>";
		contenido[2] = "<input class='form-text' name='textDelegado["+cont_fila_delegado+"]' value='"+textInput+"' size='50'>";
		contenido[3] = "<a href='javascript: borrarFila(\""+idtabla+"\",\""+idelemento+"\");'><img id=\""+idelemento+"\" src='/html/img/iconos/01_minus.gif'  title='Eliminar criterio' vspace=0 height=9 width=9 /></a>";
		agregarcont_fila(idtabla,contenido);
		cont_fila_delegado++;
		cmp = document.getElementById("numdelegado");
 		cmp.value = cont_fila_delegado;
	}else if (idtabla=="tablaResponsable"){
		idelemento="img"+[cont_fila_responsable];
		contenido[0] = "<label class='FormLabel' id='id_15'>Responsable de ejecución</label>";
		contenido[1] = "<select id='comboResponsable["+cont_fila_responsable+"]' name='comboResponsable["+cont_fila_responsable+"]'> <option value='1' selected>Contiene</option><option value='2'>No contiene</option><option value='3'>Contiene la palabra completa</option><option value='4'>No contiene la palabra completa</option></select>";
		contenido[2] = "<input class='form-text' name='textResponsable["+cont_fila_responsable+"]' value='"+textInput+"' size='50'>";
		contenido[3] = "<a href='javascript: borrarFila(\""+idtabla+"\",\""+idelemento+"\");'><img id=\""+idelemento+"\" src='/html/img/iconos/01_minus.gif'  title='Eliminar criterio' vspace=0 height=9 width=9 /></a>";
		agregarcont_fila(idtabla,contenido);
		cont_fila_responsable++;
		cmp = document.getElementById("numresponsable");
 		cmp.value = cont_fila_responsable;
	}
}

function borrarFila(idtabla, idelemento){
	alert(idelemento);
	alert(idelemento.value);
	var id= idelemento.substring(3,idelemento.length);
	alert(id);
	var tr = "tr"+id;
	elemento = document.getElementById(tr);
	alert(elemento);
	tabla = elemento.parentNode;
	tabla.removeChild(elemento);
}
	
function asignarValor(idCombo, valorCombo, idInput, valorInput){
	var combo=document.getElementById(idCombo);
	combo.value=valorCombo;
	
	var input = document.getElementById(idInput);
	input.value=valorInput;
}

</script> 
Lo que intenta hacer es por cada botón + añade una línea completa compuesta por un label, un combo, un input y una imagen. y el botón menos borrar dicha línea.

El problema es que esto me funciona en firefox pero no en IE.

¿Alguien podría ayudarme?

Un saludo.
  #2 (permalink)  
Antiguo 17/03/2010, 13:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: removechild IE

Hola:

¿Usas el tag tbody?

Los elementos tr deben estar dentro de alguno de estos: thead, tbody o tfoot...

Si no lo tienes así, tal vez te falle también en otros navegadores.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 18/03/2010, 02:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 14
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: removechild IE

Buenos días, no utilizo tbody pero, el código sí me funciona en firefox. El problema es que no funciona en IE.

¿Podrías indicarme un poco mejor lo que dices para encontrar la solución?

Muchas gracias.
Un saludo.
  #4 (permalink)  
Antiguo 18/03/2010, 03:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: removechild IE

Hola:

Verás, aunque no uses el tag tbody, los navegadores suelen ponerlo automáticamente. Así debe ser la estructura; así que cuando quieres referenciar a una fila, no basta con suponer que se trata de un nodo hijo directo de la tabla, en realidad es hijo directo del cuerpo de la tabla... otra forma, que tal vez sea más sencilla, es borrar los nodos tal como está en nuestras FAQs, o sea desde el propio nodo que se quiere borrar... por ejemplo, algo con id="borrar" sería:

borrando = document.getElementById("borrar");
borrando.parentNode.removeChild(borrando);

Es que solo se puede borrar un nodo referenciándolo desde su nodo padre.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 18/03/2010, 04:00
 
Fecha de Ingreso: febrero-2010
Mensajes: 14
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: removechild IE

Perdona una pregunta:

Y eso no es lo mismo que tengo yo puesto aquí?


elemento = document.getElementById(tr);
tabla = elemento.parentNode;
tabla.removeChild(elemento);

Un saludo y gracias de nuevo.
  #6 (permalink)  
Antiguo 18/03/2010, 04:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: removechild IE

Hola:

Parece que es el mismo código... entonces el problema será otro... ¿Ter has fijado si existe algún error...? Tal vez si estuviera visible la página, sea mejor descubrir el problema...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 18/03/2010, 04:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 14
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: removechild IE

He estado leyendo por otro hilo que puede ser culpa del href que monto en el botón de borrar filtro que es el que realmente no funciona en IE. ¿Podría deberse a eso?

Un saludo:
María José.

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 03:53.