如果孩子的孩子隐藏整个

时间:2017-09-15 09:34:23

标签: javascript jquery html tampermonkey

我有一张这样的表



<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>
&#13;
span
&#13;
&#13;
&#13;

我只是希望能够隐藏tr中具有特定类的label label-primary深的表行。在这种情况下,{{1}}。

但是,这似乎不起作用。它什么也没隐藏。

我在tampermonkey上使用它来编辑一个我没有版权访问权限的网页。

我做错了什么?

7 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分: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>

答案 3 :(得分:0)

试试这个..

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

答案 4 :(得分: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>

答案 5 :(得分:0)

我可以建议你这个jquery脚本吗?

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

答案 6 :(得分:0)

您可以使用解决方案

&#13;
&#13;
$('table tr').each(function(){
  $(this).find('span[class="label label-primary"]').hide();
});
&#13;
<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>
&#13;
&#13;
&#13;

只需遍历所有tr&amp;然后找到具有特定类的span

希望这会对你有所帮助。