子行数低于一定数量时隐藏表

时间:2016-01-07 18:48:35

标签: jquery

我有一个包含10个php / mysql生成表的页面。 所有表都具有相同的ID。

行数不同。当其中一个表的行数小于3时,我想隐藏整个表。

如何遍历表格并隐藏特定的表格。使用jQuery?

3 个答案:

答案 0 :(得分:3)

  

所有表都具有相同的ID。

ID必须是唯一的。改为使用类。

回答你的问题:隐藏所有没有可见第三行的表,注意eq()从零开始:

$('table:not(:has(tr:visible:eq(2)))').hide();
td {
  border: 1px solid gray;
}

.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr><td>Hidden</td></tr>
  <tr><td>Hidden</td></tr>
</table>

<table>
  <tr class="hidden"><td>Hidden</td></tr>
  <tr><td>Hidden</td></tr>
  <tr><td>Hidden</td></tr>
</table>

<table>
  <tr class="hidden"><td>Hidden</td></tr>
  <tr><td>Visible</td></tr>
  <tr><td>Visible</td></tr>
  <tr><td>Visible</td></tr>
</table>

答案 1 :(得分:1)

尝试使用:

if($("table tr").length < 10){
    $("table tr").addClass('display-none');
}

css是(或隐藏表格的任何其他方式):

.display-none{
    display: none;
}

答案 2 :(得分:1)

尝试以下内容。希望这会对你有所帮助。

$('table').each(function(){
    var row = $(this).find('tbody > tr').length;
    if(row<3){
       $(this).hide();
    } 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <thead><tr><th>ID</th><th>Name</th></tr></thead>
    <tbody>
        <tr><td>1</td><td>AA</td></tr>
        <tr><td>1</td><td>BB</td></tr>
        <tr><td>1</td><td>CC</td></tr>
    </tbody>
</table>
<table>
    <thead><tr><th>ID</th><th>Name</th></tr></thead>
    <tbody>
        <tr><td>1</td><td>AA</td></tr>
        <tr><td>1</td><td>BB</td></tr>
    </tbody>
</table>

相关问题