Foros del Web » Programando para Internet » Javascript »

Como eliminar un renglon en particular de una tabla creada dinamicamente

Estas en el tema de Como eliminar un renglon en particular de una tabla creada dinamicamente en el foro de Javascript en Foros del Web. Buenas Noches a todos: Necesito eliminar un renglon seleccionado por el usuario de una tabla generada dinamicamente, tengo una funcion "eliminarrenglon", la cual elimina un ...
  #1 (permalink)  
Antiguo 02/03/2006, 19:26
 
Fecha de Ingreso: diciembre-2005
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 0
Pregunta Como eliminar un renglon en particular de una tabla creada dinamicamente

Buenas Noches a todos:

Necesito eliminar un renglon seleccionado por el usuario de una tabla generada dinamicamente, tengo una funcion "eliminarrenglon", la cual elimina un nodo en particular, esta rutina funciona muy bien si el renglon fue creado via codigo sin embargo, si se usa esta funcion para eliminar un renglon de una tabla generada dinamicamnte no lo hace. el codigo que les presento crea una tabla dinamicamente, al momento de crearla le asigno un id, por lo que todos los renglones tiene un id que se forma con dos xx y un consecutivo hasta 10, esto se hace con excepcion del primer renglon que teien el id llamado "este". Coloqué tres botenes un, elimina perfectamnte los renglones partiendo del ultimo hacia arriba, el segundo boton llama la funcion borrar renglon que pasa como parameto el valor de "xx3" que es un id valido de la tabla, esta opcion falla no borra el renglon con el id "xx3" y el tercer boton tambien llama la funcion borrarenglon y pasa como parametro "este" que es el id del renglon creado por codigo ,este boton elimina sin problema el renglon.

Ojala me pudieran ayudar para saber cual es el problema o saber si no es posible eliminar renglones creados dinamicamente por medio de su id.

Gracias y Saludos

<html>
<head>
<title>
P&aacute;gina con Javascript.
</title>
<script language="javascript">
<!--
function iniciar()
{
totalFilas=0;
nodoTabla = document.getElementById ("tabla1");
agregar();
}

function agregar()
{
//if (totalFilas<10)
//{
for (renglones=0; renglones<=10; renglones++)
{
totalFilas += 1;
nodoFila = document.createElement ("tr");
nodoTabla.appendChild (nodoFila);
nodoTabla.id ="xx"+totalFilas;
for (celdas=0; celdas<=2; celdas++)
{
nodoCelda = document.createElement ("td");
nodoFila.appendChild(nodoCelda);
valorTexto = document.createTextNode ("id " + nodoTabla.id + " Celda " + (celdas+1));
nodoCelda.appendChild (valorTexto);
}
}
}

function eliminar()
{
nodoTabla.removeChild(nodoTabla.lastChild);
totalFilas -= 1;
}
function eliminarrenglon(elemento) {

elemento.parentNode.removeChild(elemento);
}

//-->
</script>
</head>
<body onLoad="iniciar();">
<table align="center" width="450" border="2">
<tbody id="tabla1">
<tr id=este onClick="eliminarrenglon(este)">
<td>ss</td>
<td>ss</td>
<td>ss</td>
</tr>
</tbody>
</table>

<br>

<form>
<input type="button" value="Eliminar fila" onClick="eliminar();">
<input name="button" type="button" onClick="eliminarrenglon(xx3);" value="Eliminar renglon3 creado dinamicamente">
<input name="button2" type="button" onClick="eliminarrenglon(este);" value="Eliminar renglon1 creado via codigo">
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 02/03/2006, 21:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Mirate este link:
http://www.tierradenomadas.com/tw006b.html
  #3 (permalink)  
Antiguo 03/03/2006, 09:35
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
probalo:
Cita:
<html>
<head>
<title>
P&aacute;gina con Javascript.
</title>
<script language="javascript">
<!--

function agregar()
{
nodoTabla = document.getElementById ("tabla1");
//if (totalFilas<10)
//{
for (renglones=0; renglones<=10; renglones++)
{
nodoFila = document.createElement ("tr");
nodoFila.id ="xx"+renglones;
for (celdas=0; celdas<=2; celdas++)
{
nodoCelda = document.createElement ("td");
valorTexto = document.createTextNode ("id: xx" + renglones + " Celda " + (celdas+1));
nodoCelda.appendChild (valorTexto);
nodoFila.appendChild(nodoCelda);
}
nodoTabla.appendChild (nodoFila);
}
}

function eliminar()
{
nodoTabla = document.getElementById ("tabla1");
nodoTabla.removeChild(nodoTabla.lastChild);
}
function eliminarrenglon(elemento) {
if(document.getElementById(elemento)){
document.getElementById('tabla1').removeChild(docu ment.getElementById(elemento));
}else{
alert("No se encuentra el elemento con el id:"+elemento);
}
}

//-->
</script>
</head>
<body onLoad="agregar()">
<table align="center" width="450" border="2">
<tbody id="tabla1">
<tr id="este" onClick="eliminarrenglon('este')">
<td>ss</td>
<td>ss</td>
<td>ss</td>
</tr>
</tbody>
</table>

<br>

<form>
<input type="button" value="Eliminar fila" onClick="eliminar();">
<input name="button" type="button" onClick="eliminarrenglon('xx3');" value="Eliminar renglon3 creado dinamicamente">
<input name="button2" type="button" onClick="eliminarrenglon('este');" value="Eliminar renglon1 creado via codigo">
</form>
</body>
</html>
__________________
by Capitán Buscapina
.
  #4 (permalink)  
Antiguo 03/03/2006, 18:34
 
Fecha de Ingreso: diciembre-2005
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 0
gracias panino5001, muy interesante tu link me va a servir de mucho

saludos
  #5 (permalink)  
Antiguo 03/03/2006, 18:43
 
Fecha de Ingreso: diciembre-2005
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 0
Cap buscapina:
Muchas gracias por la modificacion al codigo, se ejecuta muy bien, solo una observacion para los que quieran usar el codigo corregido de buscapina, si copian y pegan el codigo les marcará un error ya que en la funcion "eliminar elemento" la linea que dice
document.getElementById('tabla1').removeChild(docu ment.getElementById(elemento)); hay que quitar el espacio que haya entre el texto "docu" y "ment" para que que quede "document", para los que ya conocen javascript lo notaran facilmenete, para lo que no les aclaro el pequeño detalle, pero el fucionamiento es perfecto, hasta al mejor puede tener un detalle

Gracias Buscapina
un saludo
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 17:56.