2010-06-29 15 views
1

J'essaie de supprimer une ligne dans une table générée dynamiquement; le problème est qu'aucune de ces lignes n'a de classe ou d'ID généré et je ne peux pas obtenir le code. Il génère du code comme ceci:Comment supprimer une ligne de table en fonction du contenu de l'une des cellules de la ligne (avec jQuery)

<tr> 
    <td class="label">Who referred you?</td> 
    <td class="data">somebody</td> 
</tr> 
<tr> 
    <td class="label">terms</td> 
    <td class="data">these are the terms</td> 
</tr> 

Est-il possible d'obtenir à la ligne qui a « termes » (dans ce cas, la 2e ligne) et supprimer cette ligne entière? Quelque chose avec le text() et filter() que je ne comprends pas? Je sais que je peux facilement supprimer la deuxième rangée, mais parfois ce sera la deuxième et parfois non.

Répondre

2

Avec jQuery:

$(".profile-fields tr:contains('terms')").remove();​​​​ 

see it in action

sans jQuery (si la vitesse est une préoccupation):

var rows = document.getElementsByTagName("tr"); 
for (var i = rows.length; i--;) { 
    if(rows[i].innerHTML.indexOf("terms") !== -1) { 
    rows[i].parentNode.removeChild(rows[i]); 
    } 
} 
0

En fait, je me suis dit dehors:

$ j (". profile-fields td: contains ('terms') "). Parent(). Remove();

+0

peut être encore plus simple. voir ma mise à jour – galambalazs

Questions connexes