2017-09-15 1 views
-1

J'ai une table comme celui-ciCacher toute <tr> si l'enfant de l'enfant

$('td:contains("label label-primary")').parent().hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<tbody> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-primary"> 
 
      HIDE 
 
     </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-danger"> 
 
      SHOW 
 
     </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
</tbody>

Je veux juste être en mesure de cacher les lignes de la table dans laquelle le span profond à l'intérieur du tr a une importance particulière classe. Dans ce cas, label label-primary.

Cependant, cela ne semble pas fonctionner. Cela ne cache rien. J'utilise ceci sur tampermonkey pour éditer une page web dont je n'ai pas accès à l'édition.

Qu'est-ce que je fais mal?

Répondre

1

:contains() sélectionne tous les éléments qui contiennent le texte spécifié. Vous voulez utiliser find() (https://api.jquery.com/find/) ou :has()https://api.jquery.com/has-selector/ pour sélectionner en fonction d'un sélecteur. Vous devez également écrire ".label.label-primary" pour indiquer qu'il s'agit de classes.

$('td:has(.label.label-primary)').parent().hide(); OR $('td').find('.label.label-primary').parent().hide();

+0

Merci. Je suis très noob à tout cela et vous venez de faire ma journée. J'ai oublié la nomenclature de classe. :) –

0

Essayez ceci:

$('span').hasClass('label label-primary').parents('tr:first').hide(); 
0

utilisation sélecteur de pseudo-classe jQuery :has() pour vérifier l'élément contient au moins un élément qui correspond à la sélection spécifiée. Ou utilisez la méthode has() pour filtrer les éléments.

$('td:has(".label.label-primary")').parent().hide(); 
 

 
// or 
 
$('tr:has("td .label.label-primary")').hide(); 
 

 
// or using has method 
 
$('tr').has("td .label.label-primary").hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td> 
 
     <a class="pums" rel="tooltip"> 
 
      <span class="label label-primary"> 
 
          ble>   HIDE 
 
           </span> 
 
     </a> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td> 
 
     <a class="pums" rel="tooltip"> 
 
      <span class="label label-danger"> 
 
            SHOW 
 
           </span> 
 
     </a> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

Essayez cette ..

$(".table td").filter(function() { 
    return $('span', this).hasClass('label.label-primary'); 
}).hide(); 
0

Voici une solution d'une doublure, elle pourra être utile:

$("tr > td > a").find("span[class*='label label-primary']").closest("tr").hide()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<table> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-primary"> 
 
            HIDE 
 
           </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-danger"> 
 
            SHOW 
 
           </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
</table> 
 
</body>

0

mai je vous suggère de ce script jquery?

$('td').find(".label.label-primary").closest('tr').hide(); 
+0

'$ ('td .label.label-primary'). Le plus proche ('tr'). Hide(); 'est assez –

0

Ici, vous allez avec une solution

$('table tr').each(function(){ 
 
    $(this).find('span[class="label label-primary"]').hide(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body> 
 
<table> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-primary"> 
 
      HIDE 
 
     </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
    <tr> 
 
    <td> 
 
     <a class="pums" rel="tooltip"> 
 
     <span class="label label-danger"> 
 
      SHOW 
 
     </span> 
 
     </a> 
 
    </td> 
 
    </tr> 
 
</table> 
 
</body>

boucle Juste à travers tous les tr & puis trouver span avec classe spécifique.

J'espère que cela vous aidera.