Javascript jquery tablesorter filter-如何计算过滤的行

Javascript jquery tablesorter filter-如何计算过滤的行,javascript,jquery,jquery-plugins,tablesorter,Javascript,Jquery,Jquery Plugins,Tablesorter,我正在使用jQuery插件。它工作得很好。当我想在表被过滤后计算多少行时,我遇到了问题 $("#tblContainer").tablesorter({ debug: false, sortList: [ [0, 0] ], widgets: ['zebra'] }).tablesorterFilter({ filterContainer: $("#filterBox"), filterColumns: [1, 2], f

我正在使用jQuery插件。它工作得很好。当我想在表被过滤后计算多少行时,我遇到了问题

$("#tblContainer").tablesorter({
    debug: false,
    sortList: [
        [0, 0]
    ],
    widgets: ['zebra']

}).tablesorterFilter({
    filterContainer: $("#filterBox"),
    filterColumns: [1, 2],
    filterCaseSensitive: false
});
下面是计算筛选行(当前在屏幕上的行)的代码。但是它没有给我正确的结果。它给出了过滤行的最后计数,而不是当前计数。它总是在一个关键点后给出结果

$("#filterBox").keyup(function () {

    var textLength = $("#filterBox").val().length;

    if (textLength > 0) {

        var rowCount = $("#tblContainer tr:visible").length;

        $("#countCourseRow").html(" found " + rowCount);
    } else {
        $("#countCourseRow").html("");
    }

});

只需编辑tablesorterFilter js文件即可添加回调函数:

返回表之前的第147行添加此项关闭
doFilter()

然后更改此选项:

     this.defaults = {
        filterContainer: '#filter-box',
        filterClearContainer: '#filter-clear-button',
        filterColumns: null,
        filterCaseSensitive: false,
        filterWaitTime: 500,
        filterFunction: has_words,
        columns: []
      };

现在您只需要在这里定义回调函数

}).tablesorterFilter({
    filterContainer: $("#filterBox"),
    filterColumns: [1, 2],
    filterCaseSensitive: false,
    callback: function(){
         var rowCount = $("#tblContainer tr:visible").length;
         $("#countCourseRow").html(" found " + rowCount);
    }
});

这应该可以帮助您:)

内置事件有什么问题:

示例如下所示:

$("#tblContainer").tablesorter({
debug: false,
sortList: [
  [0, 0]
],
widgets: ['zebra']
}).bind('filterEnd', function() {
  $("#countCourseRow").html("");
  $("#countCourseRow").html("found " + $('#myTable tr:visible').length);
});

脚本中可能存在逻辑错误,否则最简单的方法是获取可见行的长度

 $('#table_id tr:visible').length

我试过了,但没用。我修改了tbsorter-filter.js并添加了callback选项,然后像这样在页面上进行了尝试。callback:function(){alert(“Yes”);}你能把它上传到某个地方让我看看吗?可能正在创建一个JSFIDLE…Sally你能检查一下JSFIDLE吗。如果你有标题,你需要在长度后面加-2。我添加了上面的绑定,并检查了可见的行。它更新了我在列之前添加的新标题。绑定('filterEnd',function(){/*****在应用筛选器时更新行计数。****/$('.tablesorter头内部span').html($('tbody tr:visible').length);})@FredrikErlandsson您的链接显示了过滤器,但我看不到那里的行数,这种解决方案也适用于寻呼机?对于页眉问题,您可以使用
$('#myTable tbody tr:visible')。长度
。您能解决这个问题吗?@JuanCarlosOropeza,试试看。应该是的。不,不是的。我必须用这个来代替
$("#tblContainer").tablesorter({
debug: false,
sortList: [
  [0, 0]
],
widgets: ['zebra']
}).bind('filterEnd', function() {
  $("#countCourseRow").html("");
  $("#countCourseRow").html("found " + $('#myTable tr:visible').length);
});
 $('#table_id tr:visible').length