如何Jquery只显示这个表结构中的特定td?

mel*_*aos 1 jquery html-table selection

我不知道如何查询这个.

我有一个如下所示的表结构:

<table class="wba_main_table" align="center" border="0" cellpadding="0" cellspacing="0" width="">
      <tbody>
        <tr>
          <td style="display: none;" id="wba_logo_bg">
          </td>
        </tr>
        <tr>
          <td style="display: none;" class="line">
          </td>
        </tr>
        <tr>
          <td class="wba_topnavBG">
          <table>
          <tr><td>bla bla bla</td></tr> 
          </table>
          </td>
        </tr>
        <tr>
          <td style="display: none;" class="line">
          </td>
        </tr>
        <tr style="display: none;" class="greyBar">
          <td>
          </td>
        </tr>
        <tr>
          <td style="display: none;" class="line">
          </td>
        </tr>
        <tr>
          <td style="display: none;" class="lightGreyBar">
          </td>
        </tr>
        <tr>
             <td><table><tbody><tr><td>
                 <div id="deep_div1"></div>
             </td></tr></tbody></table></td>
        </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

而我想要做的是隐藏所有的tr,除了包含它的那个wba_topnavBG.我的策略是使用wba_logo_bgas id并选择父母然后从那里选择所有没有类的孩子td wba_topnavBGhide()他们所有,但我不知道如何写选择部分.

有帮助吗?:)

编辑

忘了在那个td里面添加另外一个包含更多tr和tds的表结构.

编辑2

嗯,现在看来我必须隐藏另一个tr,其中包含一个包含带有id的div的表.可以修改jquery行来添加另一个要查找的东西:有语法吗?

  1. 除了包含div deep_div1 和td类的那个 之外,我怎么能隐藏另一个tr wba_topnavBG呢?

由于这个新的转折仍然与这个问题有关,我不想在Stack Overflow中创建另一个问题.

CMS*_*CMS 6

您可以组合:not:has伪选择器:

$('.wba_main_table tr:not(:has(td.wba_topnavBG))').hide();
Run Code Online (Sandbox Code Playgroud)

此选择器将匹配所有tr不包含td具有类的元素的元素wba_topnavBG.

在这里查看带有标记的示例.

编辑:为了回应你的评论,如果你有一个表td,并且你只想选择直接tr后代.wba_main_table,你应该使用父>子选择器:

$('.wba_main_table > tr:not(:has(td.wba_topnavBG))').hide();
Run Code Online (Sandbox Code Playgroud)