2010-10-14 22 views
1

Quel est le meilleur moyen en Javascript pour supprimer la ligne de la table html? Les éléments <td> contiennent colspan et rowspan plus 1. La fonction deleteRow() dans DOM ne prend pas en compte les colspans et rowspans.Quel est le meilleur moyen en Javascript pour supprimer la ligne de la table html?

+0

Pouvez-vous clarifier? Comment ne prend-il pas en compte colspan et rowspan? http://www.jsfiddle.net/guTgd/ <- Donnez-nous un exemple –

+0

http://www.jsfiddle.net/guTgd/3/ –

Répondre

1

Il ressemble à votre table croule parce qu'il n'a plus un nombre égal de cellules dans chaque rangée. C'est à prévoir. Vous devez remplacer les cellules manquantes dans les lignes affectées. Colspan ne devrait pas être un problème parce que c'est tout sur une ligne qui est en train d'être supprimée. Rowspan cependant aura un impact sur les autres lignes, donc:

1) en utilisant getElementsByTagName, obtenir tous vos éléments td de votre noeud tr (pas votre document), puis boucle à travers eux pour vérifier l'attribut rowspan avec getAttribute

2) si l'un des attributs revient en tant que nombre, vous devez passer par autant de lignes moins 1 et insérer un td au point où il y aurait eu un rowspan représentant le td.
S'il y a aussi des colspans, vous devrez garder une trace de ceux-ci pour déterminer dans quelle colonne le td se trouve réellement. Vous devrez aussi chercher des colspans dans les lignes suivantes quand vous venez d'insérer le nouveau. td.

3) Vous devrez peut-être récupérer les nœuds innerHTML ou enfants du td d'origine et les stocker en mémoire si vous souhaitez ajouter le contenu dans les lignes suivantes, une fois la ligne supprimée, le contenu sera également supprimé .

4) une fois que vous avez fait cela, il est maintenant sûr de supprimer la ligne.

0

Si vous avez chargé jQuery

$('tr#id_of_the_row').remove();