Foros del Web » Programando para Internet » Javascript »

Manipular tablas con el DOM

Estas en el tema de Manipular tablas con el DOM en el foro de Javascript en Foros del Web. Cómo les va, encontré este pequeño ejemplo en el foro al cual le adicioné la función addtr() para probar añadir filas a una tabla. La ...
  #1 (permalink)  
Antiguo 04/12/2008, 21:59
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Manipular tablas con el DOM

Cómo les va,
encontré este pequeño ejemplo en el foro al cual le adicioné la función addtr()
para probar añadir filas a una tabla. La cuestión es que la función sí añade la
fila que le indico pero no muestra los texto que pongo que son "Hiru 2"
y "Lo Logré"....... Podría decirme alguien por favor, qué falta.


<html>
<head>
<script type="text/javascript">
//<script type="text/javascript" src="main2.js">

function remove(t)
{
var td = t.parentNode;
var tr = td.parentNode;
var table = tr.parentNode;
table.removeChild(tr);
}

function addtr(t)
{
var tabla = document.getElementById('miTabla');
// Insertar la tercera fila
tabla.tBodies[0].insertRow(2);
tabla.tBodies[0].rows[2].insertCell(1);
tabla.tBodies[0].rows[2].cells[1].innerHTML = "Hiru 2";
tabla.tBodies[0].rows[2].insertCell(2);
tabla.tBodies[0].rows[2].cells[2].innerHTML = "Lo Logré";
document.body.appendChild(tabla);
}

</script>
</head>
<body>
<table id="miTabla">
<tr>
<td>Bat</td>
<td><input type="button" onclick="remove(this)" value="Eliminar" /></td>
</tr>
<tr>
<td>Bi</td>
<td><input type="button" onclick="remove(this)" value="Eliminar" /></td>
</tr>
<tr>
<td>Hiru</td>
<td><input type="button" onclick="remove(this)" value="Eliminar" /></td>
</tr>
<tr>
<td>H</td>
<td><input type="button" onclick="addtr()" value="Adicionar" /></td>
</tr>

</table>
</body>
</html>
  #2 (permalink)  
Antiguo 05/12/2008, 01:07
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: Manipular tablas con el DOM

no puedes hacer un innerHTML antes de hacer el appendChild, cambia esto:

tabla.tBodies[0].rows[2].cells[1].innerHTML = "Hiru 2";

por esto:
Código javascript:
Ver original
  1. var txt = document.createTextNode('Hiru 2');
  2. tabla.tBodies[0].rows[2].cells[1].appendChild(txt);

o todo junto ;)
Código javascript:
Ver original
  1. tabla.tBodies[0].rows[2].cells[1].appendChild(document.createTextNode('Hiru 2'));
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan

Última edición por ZiTAL; 05/12/2008 a las 02:02
  #3 (permalink)  
Antiguo 05/12/2008, 01:44
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: Manipular tablas con el DOM

Cita:
Iniciado por ZiTAL Ver Mensaje
no puedes hacer un innerHTML antes de hacer el appendChild, cambia esto:

tabla.tBodies[0].rows[2].cells[1].innerHTML = "Hiru 2";

por esto:
Código javascript:
Ver original
  1. var txt = createTextNode('Hiru 2');
  2. tabla.tBodies[0].rows[2].cells[1].appendChild(txt);

o todo junto ;)
Código javascript:
Ver original
  1. tabla.tBodies[0].rows[2].cells[1].appendChild(createTextNode('Hiru 2'));
Hola:

No estoy seguro, pero creo que createTextNode debe estar precedido del objeto document... si perteneciese al objeto window posiblemente se podría omitir el objeto padre...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 05/12/2008, 02:01
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Respuesta: Manipular tablas con el DOM

si tienes razon ahora lo cambio eso pasa por escribir y no probar :P
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 05/12/2008, 08:31
 
Fecha de Ingreso: noviembre-2008
Mensajes: 25
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Manipular tablas con el DOM

Gracias a los dos
hice los cambios sugeridos y ya corregidos por Zital, pero sigue sin mostrar nada.
Aquí les muestro como quedó la función.


function addtr(t)
{
var tabla = document.getElementById('miTabla');
// Insertar la tercera fila
tabla.tBodies[0].insertRow(2);
tabla.tBodies[0].rows[2].insertCell(1);
tabla.tBodies[0].rows[2].insertCell(2);
//----
var txt0 = document.createTextNode('Hiru 2');
tabla.tBodies[0].rows[2].cells[1].appendChild(txt0);
// tabla.tBodies[0].rows[2].cells[1].appendChild(document.createTextNode('Hiru 2'));

//----
var txt1 = document.createTextNode('Lo Logré');
tabla.tBodies[0].rows[2].cells[2].appendChild(txt1);
// tabla.tBodies[0].rows[2].cells[2].appendChild(document.createTextNode('Lo Logré'));
//----
document.body.appendChild(tabla);

// tabla.tBodies[0].rows[2].cells[1].innerHTML = "Hiru 2";
// tabla.tBodies[0].rows[2].cells[2].innerHTML = "Lo Logré";
}

Última edición por sergiopdlt; 05/12/2008 a las 08:37
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 19:05.