2017-09-15 121 views
-1

我有這樣隱藏整個<tr>如果孩子的孩子

$('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>

我只是想能夠隱藏在深處的TR內span有一個特定的錶行類。在這種情況下,label label-primary

但是,這似乎並不奏效。它什麼都沒有隱藏。

我在tampermonkey上使用此編輯其代碼沒有版本訪問權的網頁。

我在做什麼錯?

回答

1

:contains()選擇包含指定文字的所有元素。您想使用find()https://api.jquery.com/find/)或:has()https://api.jquery.com/has-selector/以基於選擇器進行選擇。您還必須編寫「.label.label-primary」來表明它們是類。

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

+0

謝謝。我非常喜歡這一切,而你剛剛度過了一天。我忘記了課程命名。 :) –

0

試試這個:

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

使用jQuery :has()僞類選擇檢查元素包含指定的選擇相匹配的至少一個元素。或者使用has()方法過濾元素。

$('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

試試這個..

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

這裏一個襯墊的解決方案,希望它有助於:

$("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

我建議你這個jQuery腳本?

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

'$('td .label.label-primary')。closest('tr')。hide();'就夠了 –

0

在這裏,你去了一個解決方案

$('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>

只是遍歷所有tr &然後找到span與特定的類。

希望這會幫助你。

相關問題