Jquery显示/隐藏表行

前端之家收集整理的这篇文章主要介绍了Jquery显示/隐藏表行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够使用jquery显示/隐藏表中的行.理想情况下,我想在表格上方有按钮来对表进行排序.

即[显示ID为黑色的行] [显示ID为白色的行] [显示所有行]

我已经搜索过,但找不到解决方案.任何人都知道如何使用jquery来做到这一点,使其跨浏览器兼容?

谢谢(代码如下)

<table class="someclass" border="0" cellpadding="0" cellspacing="0" summary="bla bla bla">
<caption>bla bla bla</caption>
<thead>
  <tr id="black">
    <th>Header Text</th>
    <th>Header Text</th>
    <th>Header Text</th>
    <th>Header Text</th>
    <th>Header Text</th>
    <th>Header Text</th>
  </tr>
</thead>
<tbody>
  <tr id="white">
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
</tr>
  <tr id="black">
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
    <td>Some Text</td>
</tr>
</tbody>

解决方法

将您的黑白ID更改为类(重复的ID无效),添加2个具有适当ID的按钮,然后执行此操作:
var rows = $('table.someclass tr');

$('#showBlackButton').click(function() {
    var black = rows.filter('.black').show();
    rows.not( black ).hide();
});

$('#showWhiteButton').click(function() {
    var white = rows.filter('.white').show();
    rows.not( white ).hide();
});

$('#showAll').click(function() {
    rows.show();
});
<button id="showBlackButton">show black</button>
<button id="showWhiteButton">show white</button>
<button id="showAll">show all</button>

<table class="someclass" border="0" cellpadding="0" cellspacing="0" summary="bla bla bla">
    <caption>bla bla bla</caption>
    <thead>
          <tr class="black">
            ...
          </tr>
    </thead>
    <tbody>
        <tr class="white">
            ...
        </tr>
        <tr class="black">
           ...
        </tr>
    </tbody>
</table>

它使用filter()[docs]方法用黑色或白色类过滤行(取决于按钮).

然后使用not()[docs]方法执行相反的过滤器,不包括之前发现的黑色或白色行.

编辑:您也可以将选择器传递给.not(),而不是先前找到的集合.它可能会表现得更好:

rows.not( `.black` ).hide();

// ...

rows.not( `.white` ).hide();

…或者更好的是,从一开始就保持一个缓存的一套:

var rows = $('table.someclass tr');
var black = rows.filter('.black');
var white = rows.filter('.white');

$('#showBlackButton').click(function() {
    black.show();
    white.hide();
});

$('#showWhiteButton').click(function() {
    white.show();
    black.hide();
});
原文链接:https://www.f2er.com/jquery/180513.html

猜你在找的jQuery相关文章