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选择器查询HTMLtr
元素的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如何与表一起使用。这些是找出代码为何不起作用的关键,但它们仅在此处引用,因此我无法说明它们是如何建立的。您可能想了解如何提供正确级别的信息来调试问题。