Foros del Web » Programando para Internet » Javascript »

Borrar filas de una tabla

Estas en el tema de Borrar filas de una tabla en el foro de Javascript en Foros del Web. Hola, me he hecho un script que mediante un boton me va añadiendo filas en una tabla. Eso me funciona bien. Lo que quiero y ...
  #1 (permalink)  
Antiguo 24/02/2006, 09:02
Avatar de Callaghan  
Fecha de Ingreso: enero-2006
Mensajes: 58
Antigüedad: 18 años, 3 meses
Puntos: 1
Borrar filas de una tabla

Hola, me he hecho un script que mediante un boton me va añadiendo filas en una tabla. Eso me funciona bien.
Lo que quiero y no consigo es saber como puedo al pulsar el boton "borrar", borrar la fila en la que esta el boton y la superior. Se que hay que usar el deleteRow(), pero no se como hacerlo.

Script para añadir filas a una tabla
Código PHP:
<script>
function 
anyadefila(){
obj=document.getElementById('tablatemp');

var 
x=obj.insertRow(0);
var 
y=x.insertCell(0);
y.innerHTML="Valor2"
var y=x.insertCell(1);
elTd=document.createElement('td');
elem=document.createElement('input');
elem.type='text';
elem.name='Valor2';
elTd.appendChild(elem);
y.appendChild(elTd);
//boton borrar
var y=x.insertCell(2);
elTd=document.createElement('td');
elem=document.createElement('input');
elem.type='button';
elem.name='borrar';
elem.value="borrar";
elTd.appendChild(elem);
y.appendChild(elTd);

var 
x=obj.insertRow(0);
var 
y=x.insertCell(0);
y.innerHTML="Valor1"
var y=x.insertCell(1);
elTd=document.createElement('td');
elem=document.createElement('input');
elem.type='text';
elem.name='Valor1';
elTd.appendChild(elem);
y.appendChild(elTd);
var 
y=x.insertCell(2);
</script>

Esta es la tabla y el boton para añadir las filas
Código PHP:
<input name="temp" type="button" id="temp" value="Añade fila" onclick="anyadefila()" />
<
table width="97%" border="0" bordercolor="#FFFFCC" id="tablatemp">
      <
tr id="fila"
        <
td width="46%">Valor1: </td>
        <
td width="54%"><input name="valor1" type="text" id="valor1" size="20" /></td>
        <
td width="1">&nbsp; </td>
      </
tr>
      <
tr
        <
td>Valor2: </td>
        <
td><input name="valor2" type="text" id="valor2" size="20" /></td>
</
table
  #2 (permalink)  
Antiguo 24/02/2006, 09:39
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Callaghan

Echa un vistazo a este enlace:

http://www.tierradenomadas.com/tw006b.html

Saludos,
  #3 (permalink)  
Antiguo 24/02/2006, 09:58
Avatar de Callaghan  
Fecha de Ingreso: enero-2006
Mensajes: 58
Antigüedad: 18 años, 3 meses
Puntos: 1
Gracias, pero es que no consigo pasar el numero de la fila en la que esta el boton.
La cuestion es,yo pulso cuatro veces el boton "añadir" y se me crean 8 campos en ocho filas(cada vez que se pulsa elboton añadir se crean dos filas y un boton borrar),lo que quiero es que al pulsar el boton borrar se me borre la fila en la que esta el boton y la fila que esta encima donde esta el boton.
  #4 (permalink)  
Antiguo 24/02/2006, 11:32
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Añade una línea a tu código:

elem.name='borrar';
elem.value="borrar";
elem.onclick=function() {borrar(this)}
elTd.appendChild(elem);

y utiliza esto para borrar las filas:
Código:
function borrar(obj) {
  while (obj.tagName!='TR') 
    obj = obj.parentNode;
  tab = document.getElementById('tablatemp');
  for (i=0; ele=tab.getElementsByTagName('tr')[i]; i++)
    if (ele==obj) num=i;
  tab.deleteRow(num);
  tab.deleteRow(num-1);
}
Espero que te sirva. Saludos,
  #5 (permalink)  
Antiguo 24/02/2006, 11:44
Avatar de Callaghan  
Fecha de Ingreso: enero-2006
Mensajes: 58
Antigüedad: 18 años, 3 meses
Puntos: 1
FUNCIONA!!!!!!!

Muchas gracias,me ha sido de gran ayuda.
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 23:30.