Foros del Web » Programando para Internet » Javascript »

eliminar un tr de un table

Estas en el tema de eliminar un tr de un table en el foro de Javascript en Foros del Web. Buenas amigos del foro Tengo esta estructura @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código html: Ver original < table >   < tr id = 'row1' >     ...
  #1 (permalink)  
Antiguo 11/11/2008, 11:27
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
eliminar un tr de un table

Buenas amigos del foro

Tengo esta estructura

Código html:
Ver original
  1.   <tr id='row1'>
  2.     <td>
  3.       contenido row1
  4.     </td>
  5.   </tr>
  6.   <tr id='row2'>
  7.     <td>
  8.       contenido row2
  9.     </td>
  10.   </tr>
  11.   <tr id='row3'>
  12.     <td>
  13.       contenido row3
  14.     </td>
  15.   </tr>

con que método o instrucción javascript podría eliminar un elemento TR por su id???

Muchas gracias de antemano
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #2 (permalink)  
Antiguo 11/11/2008, 11:28
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 un tr de un table

Llamando al método removeChild del nodo padre.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/11/2008, 11:35
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: eliminar un tr de un table

Gracias David, algo como asi,no??
Código javascript:
Ver original
  1. function eliminarElemento(id_row){
  2.  
  3.     row= document.getElementById(id_row);
  4.  
  5.     if (!row){
  6.         alert("El elemento selecionado no existe");
  7.     } else {
  8.         padre = row.parentNode;
  9.         padre.removeChild(row);
  10.     }
  11.  
  12. }

Saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #4 (permalink)  
Antiguo 11/11/2008, 11:38
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 un tr de un table

Sí, así es .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/11/2008, 11:00
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

Para agregar un TR sería lo mismo pero en vez del id del row sería el de la table y en removeChild que habría que reemplazar?
  #6 (permalink)  
Antiguo 12/11/2008, 11:04
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 un tr de un table

Debes primero crear el elemento con createElement y con addChild agregarlo a la tabla. Creo que hay un ejemplo en las FAQ's de cómo agregar elementos dinámicamente, puedes revisarlo.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 12/11/2008, 11:40
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

function agregarTR()
{
var table =document.getElementById("ctl07_table_repeat");
if (!table)
{
alert("El elemento selecionado no existe");
}
else
{
var tr = document.createElement("TR");
padre = table.parentNode;
padre.addChild(tr);
}
}


supongamos que tengo esta funcion, hasta ahi le estaría creando un nuevo tr a la tabla, pero si quiero que el tr que agrego sea igualito a uno que ya tengo puedo clonarlo buscandolo por el id del tr que quiero clonar? en vez de construirlo de nuevo? Como sería si es que se puede?
  #8 (permalink)  
Antiguo 12/11/2008, 11:44
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 un tr de un table

En ese caso puedes usar cloneNode en vez de crear un nuevo elemento. Véase: https://developer.mozilla.org/en/DOM/element.cloneNode

P.S.: Solo como observación, no estás agregando el tr a la tabla, estás agregando al nodo padre de la tabla, modifícalo para que te agregue a la tabla, o sea, no necesitas el parentNode.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 12/11/2008, 12:10
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

function AgregarTR()
{
var table =document.getElementById("ctl07_tableRepeat");
if (!table)
{
alert("El elemento selecionado no existe");
}
else
{
var tr = document.getElementById("ctl07_trAgregar");
var tr_new = tr.cloneNode(true);
table.addChild(tr_new);
}
}

ahi lo probé y no me deja hacer table.addChild, como tengo que agregarle el tr clonado?
  #10 (permalink)  
Antiguo 12/11/2008, 12:18
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 un tr de un table

No puedo creer que escribí addChild en vez de appendChild . Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 12/11/2008, 12:25
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

jeje , si , justamente me había fijado y probe con appendChild y no me tiro error pero no me la agrego o por lo menos no veo que me la agregue. te paso la funcion de nuevo, aver si encuentras el error:
function AgregarTR()
{
var table =document.getElementById("ctl07_tableRepeat");
if (!table)
{
alert("El elemento selecionado no existe");
}
else
{
var tr = document.getElementById("ctl07_trAgregar");
var tr_new = tr.cloneNode(true);
table.appendChild(tr_new);
table.refresh();
}
}
  #12 (permalink)  
Antiguo 12/11/2008, 12:37
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

Ahora lo hice funcionar agregandole un element TBODY y me anduvo
pero lo extraño es que se me agrega un segundo y vuelve a desaparecer.

esta table esta dentro de un ContentTemplate.
puede tener que ver?
tiene alguna solución?
  #13 (permalink)  
Antiguo 12/11/2008, 15:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: eliminar un tr de un table

¿Podrías poner el código HTML de la tabla?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 13/11/2008, 08:02
 
Fecha de Ingreso: julio-2008
Mensajes: 88
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: eliminar un tr de un table

Aparentemente como el update panel tiene su propio postback perdía el estado.
Encontre una función que captura el postback del UpdatePanel:
function EndRequestHandler(sender, args)
{
alert(agregar);
if ((args.get_error() == undefined) && (agregar==true))
{
agregarTR();

}
else
{
alert("no te agrego");
}
}

function pageLoad()
{

Sys.WebForms.PageRequestManager.getInstance().add_ endRequest(EndRequestHandler);

}


La variable agregar arranca en false fuera de las funciones y cuando apreto nueva fila va a la funcion javascript que agrega el tr y la pone en True, el problema es que la primera vez me agrega doble TR... :S
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 15:13.