【问题标题】:Jquery - only in tables of class .stable, hide all rows where the 2nd td has no innerHTMLJquery - 仅在 .stable 类的表中,隐藏第二个 td 没有 innerHTML 的所有行
【发布时间】:2019-06-30 16:06:19
【问题描述】:

我有一个包含许多表格的 HTML 文档。

我只想从具有 .stable

类的表中隐藏行

行的第二个 td 没有 innerHTML。

表格的示例 html

 $("tr").not(":has(td:nth-child(2):not(:empty))").hide();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="stable">
    	<tr class="spec_tit"><th colspan="2">Resident Evil 7</th></tr>
    	<tr class="spec_cpu"><td class="tdr">CPU</td><td class="tdl">Intel Core i5 4460 @2.70GHz / AMD FX 6300</td></tr>
    	<tr class="spec_ram"><td class="tdr">RAM</td><td class="tdl">8GB</td></tr>
    	<tr class="spec_gra"><td class="tdr">Graphics</td><td class="tdl"><strong>2GB</strong>, nVidia GeForce GTX 760 / AMD Radeon R7 260x</td></tr>
    	<tr class="spec_sha"><td class="tdr">Shader Model</td><td class="tdl"></td></tr>
    	<tr class="spec_dis"><td class="tdr">Disk space</td><td class="tdl">24GB</td></tr>
    	<tr class="spec_aud"><td class="tdr">Audio</td><td class="tdl">DX 9.0c</td></tr>
    	<tr class="spec_per"><td class="tdr">Peripherals</td><td class="tdl"></td></tr>
    	<tr class="spec_os"><td class="tdr">OS</td><td class="tdl">Win7 x64, Win8 x64, Win8.1 x64, Win10 x64</td></tr>
    	<tr class="spec_dx"><td class="tdr">DX ver</td><td class="tdl">11</td></tr>
    </table>

但是:

  1. 它对所有表进行操作,不分类

  2. 它包括具有单个 th(并且没有 td)的行,例如上面示例的第一行

正确的 jquery 将仅隐藏示例中的第 5、7 和 8 行

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    为了选择所有具有 stable 类且 2" td 为空的表,选择器为:

    $('table.stable td:nth-child(2):empty')
    

    为了隐藏整行代码是:

    $('table.stable td:nth-child(2):empty').closest('tr').hide()
    

    更多详情见:nth-child():empty.closest()

    $('table.stable td:nth-child(2):empty').closest('tr').hide()
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <table class="stable">
        <tr class="spec_tit">
            <th colspan="2">Resident Evil 7</th>
        </tr>
        <tr class="spec_cpu">
            <td class="tdr">CPU</td>
            <td class="tdl">Intel Core i5 4460 @2.70GHz / AMD FX 6300</td>
        </tr>
        <tr class="spec_ram">
            <td class="tdr">RAM</td>
            <td class="tdl">8GB</td>
        </tr>
        <tr class="spec_gra">
            <td class="tdr">Graphics</td>
            <td class="tdl"><strong>2GB</strong>, nVidia GeForce GTX 760 / AMD Radeon R7 260x</td>
        </tr>
        <tr class="spec_sha">
            <td class="tdr">Shader Model</td>
            <td class="tdl"></td>
        </tr>
        <tr class="spec_dis">
            <td class="tdr">Disk space</td>
            <td class="tdl">24GB</td>
        </tr>
        <tr class="spec_aud">
            <td class="tdr">Audio</td>
            <td class="tdl">DX 9.0c</td>
        </tr>
        <tr class="spec_per">
            <td class="tdr">Peripherals</td>
            <td class="tdl"></td>
        </tr>
        <tr class="spec_os">
            <td class="tdr">OS</td>
            <td class="tdl">Win7 x64, Win8 x64, Win8.1 x64, Win10 x64</td>
        </tr>
        <tr class="spec_dx">
            <td class="tdr">DX ver</td>
            <td class="tdl">11</td>
        </tr>
    </table>

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多