Supprimer une ligne d'un tableau en javascript

Supprimer une ligne d'un tableau en javascript - HTML/CSS - Programmation

Marsh Posté le 13-11-2008 à 15:57:44    

Bonsoir à tous,
 
J'ai un tableau id=latable en HTML dans lequel les lignes (tr) ont un id=tr+unnumero.
 
Je veux supprimer la ligne 3. Je dois d'abord supprimer chaque td ou je peux directement supprimer le tr ?
 

Code :
  1. document.getElementById('latable').removeChild(document.getElementById('tr3'));


 
Ca me dit "Node was not found"
 
mais si je supprime les td, ça marche (mais toujours pas pour le tr)
 

Code :
  1. document.getElementById('tr3').removeChild(document.getElementById('td31'));
  2. document.getElementById('tr3').removeChild(document.getElementById('td32'));
  3. document.getElementById('latable').removeChild(document.getElementById('tr3'));


 
Les 2 première lignes marchent (mais le tr est toujours là) et la 3e ligne ne marche pas...  
 
Qu'est-ce que j'ai oublié ???


Message édité par zezette le 17-11-2008 à 11:25:29

---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 13-11-2008 à 15:57:44   

Reply

Marsh Posté le 13-11-2008 à 16:07:58    

Les <tr> ne sont pas childNodes du <table>, mais du <tbody> (qui est optionnel, mais quand-même présent dans le DOM)

Reply

Marsh Posté le 13-11-2008 à 16:20:57    

Ou si tu veux supprimer une ligne d'une table, utilise simplement la méthode deleteRow(index) de l'objet table ou d'une section d'une table (thead ou tbody). "index" commence à 0, -1 pour la dernière ligne.

Reply

Marsh Posté le 14-11-2008 à 08:27:02    

FlorentG a écrit :

Les <tr> ne sont pas childNodes du <table>, mais du <tbody> (qui est optionnel, mais quand-même présent dans le DOM)


 
Merci pour l'info ; j'ai donc remplacé la dernière ligne par
 

Code :
  1. document.getElementById('latable').firstChild.removeChild(document.getElementById('tr3'));


 
Ca marche en IE7, mais il y a toujours la même erreur en Firefox...


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 14-11-2008 à 08:33:11    

tpierron a écrit :

Ou si tu veux supprimer une ligne d'une table, utilise simplement la méthode deleteRow(index) de l'objet table ou d'une section d'une table (thead ou tbody). "index" commence à 0, -1 pour la dernière ligne.


 
Pas mal, mais comment je peux récupérer l'index ? (outre mon 3 dans mon exemple)


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Marsh Posté le 14-11-2008 à 17:31:18    

Propriété rowIndex d'un TableRow (un tr donc). Fait attention, car c'est l'index absolu dans la table, donc pour supprimer une ligne avec cette valeur, c'est la méthode deleteRow de la table qu'il faut appeler (pas du tbody ou thead).

Reply

Marsh Posté le 14-11-2008 à 17:44:40    

Une fois j'avais fait une fonction comme ca en JS :
 

Code :
  1. function deltile(t)
  2. {
  3. if(document.getElementById(t))document.getElementById(t).parentNode.removeChild(document.getElementById(t));
  4. }


 
Si je me souviens, elle s'utilise comme ca :
deltile('tr3');
 
Bien sur, il faut mettre les bon id au <tr>
Normalement, ca marche :)


Message édité par GordonF_69 le 14-11-2008 à 17:50:35
Reply

Marsh Posté le 17-11-2008 à 08:04:12    

tpierron a écrit :

Propriété rowIndex d'un TableRow (un tr donc). Fait attention, car c'est l'index absolu dans la table, donc pour supprimer une ligne avec cette valeur, c'est la méthode deleteRow de la table qu'il faut appeler (pas du tbody ou thead).


 
Ca marche, merci !


---------------
"Par moment j'me d'mande si chui pas con" G. de Suresnes
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed