jQuery-仅在.stable类的表中,隐藏第2个td没有innerHTML

时间:2019-06-30 16:06:19

标签: javascript jquery html

我有一个包含许多表的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行

1 个答案:

答案 0 :(得分:0)

要选择所有 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>