Javascript 使用“类”隐藏行;“隐藏的”;更改复选框后

Javascript 使用“类”隐藏行;“隐藏的”;更改复选框后,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在使用。我想用class=“hidden”隐藏所有行 此代码: var table = $('#table1').DataTable(); table.rows('.hidden').hide(); 它不工作(行不隐藏),我在控制台中看到以下文本: table.rows(…).hide不是函数 如何使用class=“hidden”隐藏所有行 HTML代码: <tr class=""> <td>1</td> <td>ABC&l

我正在使用。我想用
class=“hidden”
隐藏所有行

此代码:

var table = $('#table1').DataTable();
table.rows('.hidden').hide();
它不工作(行不隐藏),我在控制台中看到以下文本:

table.rows(…).hide不是函数

如何使用
class=“hidden”
隐藏所有行


HTML代码:

<tr class="">
    <td>1</td>
    <td>ABC</td>
    <td>17</td>
</tr>

<tr class="hidden">
    <td>2</td>
    <td>DEF</td>
    <td>22</td>
</tr>

<tr class="">
    <td>3</td>
    <td>GHI</td>
    <td>55</td>
</tr>

<tr class="hidden">
    <td>4</td>
    <td>JKL</td>
    <td>11</td>
</tr>
<input id="hideRows" name="hideRows" type="checkbox">

以下解决方案假设行已经用
隐藏类标记

要使用DataTable筛选来隐藏行,请实现一个筛选函数,如下所示:

$.fn.dataTable.ext.search.push(
   function(settings, data, dataIndex) {
      return $(table.row(dataIndex).node()).hasClass('hidden');
   }
);
$('tr.hidden').hide();
table.draw();
虽然不推荐使用jQuery,但可以使用jQuery隐藏行,但存在一些问题。(您可能需要这样做是有充分理由的,但这里不介绍这些理由。)只需使用常规jQuery选择器查询HTML
tr
元素的
hidden
类,然后应用,如下所示:

$.fn.dataTable.ext.search.push(
   function(settings, data, dataIndex) {
      return $(table.row(dataIndex).node()).hasClass('hidden');
   }
);
$('tr.hidden').hide();
table.draw();
如果使用非筛选函数隐藏行(使用上面的jQuery方法,或者使用
hidden
类上的CSS样式),可能会有副作用。有关更多信息,请参阅。如果显示/筛选问题,则必须让DataTables知道哪些行已被隐藏:

$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex) {
    if ($(oSettings.nTable).hasClass('hidden')) {
        return aData[16] == '' || $('#chkShowExcluded').is(':checked');
    } else return true;
});
请注意,在使用这些方法中的任何一种之后,在将
隐藏的
类应用于表行之后,可能必须强制重新绘制,如下所示:

$.fn.dataTable.ext.search.push(
   function(settings, data, dataIndex) {
      return $(table.row(dataIndex).node()).hasClass('hidden');
   }
);
$('tr.hidden').hide();
table.draw();

嗨,迈克尔,谢谢你的回答。我一直在尝试使用您的代码,行已被删除,但我仍然看到旧的条目数,即使表已更新。你能查一下我的密码吗?->很难阅读注释中包含的代码。你能用这些信息更新你的问题吗?如果单击问题下方的
edit
链接,可以将代码复制到其中。看起来您可能还需要包含更多代码,例如添加
隐藏类的代码。好的,我更新了我的第一条评论,并添加了代码链接:-)好的,为了将来参考,当StackOverflow上有人说“问题”时,他们指的是原始问题,一直放在页面顶部。你编辑的是一条评论,碰巧问了一个后续问题,但仍然被称为评论。我需要了解的是
隐藏的
类如何添加到行中,以及
#hideRows
id如何与表一起使用。这些是找出代码为何不起作用的关键,但它们仅在此处引用,因此我无法说明它们是如何建立的。您可能想了解如何提供正确级别的信息来调试问题。