2011-06-27 8 views
0

je html qui affiche un tableau similaire à:Supprimer la ligne de table qui contient une table

<table> 
<tr> 
    <th>col1</th> 
    <th>col2</ht> 
</tr> 
<tr> 
    <td>0001</td> 
    <td>Test</td> 
</tr> 
<tr> 
    <td colspan="2" id="detailsTable"> 
     <table> 
      <tr> 
       <th>one</th> 
       <th>two</th> 
      </tr> 
      <tr> 
       <td>xxxxxx</td> 
       <td>xxxxxxx</td> 
      </tr>    
     </table> 
    </td> 
</tr> 

Il y a une colonne d'expansion et des boutons de contrat sur la table externe, de sorte que la table imbriquée est s'affiche uniquement lorsque l'utilisateur clique pour développer.

L'extension fonctionne et la table s'affiche. Cependant quand quand j'essaye de retirer la ligne de la table externe qui contient la table enfant cela ne marche pas.

j'avais code comme:

var rowIndex = $(this).parent().parent().prevAll().length; 
$("table[id$=gvParentAccounts] tr").eq(rowIndex + 1).remove(); 

Si la ligne ne contient que du texte fonctionne comme je voudrais et supprime la ligne, si comme dans ce cas, la ligne contient une table, il ne peut pas supprimer la rangée au besoin. J'utilise ASP.Net et jQuery pour cela.

Merci Alan.

+0

pourquoi ne pas utiliser '$ ("# detailsTable") parent() remove();'..? http://jsfiddle.net/uJvfP/ – Sotiris

+1

À quoi cela fait-il référence dans votre JS? – Niklas

Répondre

3

Que diriez-vous:

$(this).parent().parent().remove(); 

Je ne sais pas si cela est exactement ce que vous avez, mais voici un jsFiddle démontrant que cela fonctionne:

http://jsfiddle.net/9TQG9/1/

EDIT: En fait ceci:

$(this).parents("tr").eq(0).remove(); 

serait beaucoup plus agréable et plus fiable. Voir ici:

http://jsfiddle.net/9TQG9/2/

+0

Merci rciq, je suis en train d'insérer dynamiquement la table enfant mais votre réponse me conduit à essayer $ (this) .parent(). Parent(). Next(). Remove(); et cela fonctionne. Merci –

+0

Dans ce cas, vous pouvez également essayer $ (this) .parents ("tr"). Eq (0) .next(). Remove(). Cela devrait fonctionner quelle que soit la profondeur de vos boutons dans la structure de la table. – rciq

+0

Merci rciq $ (this) .parents ("tr") fonctionne pour moi –

Questions connexes