使用bootstrap table组件,当使用过滤器的时候,页面的表格行数发生变化,此时需要统计表格行数。想要监听表格变化,如何做呢?

使用场景:有一个表格里放着许多测试用例,当使用过滤器的时候表格中测试用例的数量发生了变化,此时要重新统计表格中的测试用例个数并反馈在页面上。

这里设:表格的tbody元素的id为monitorTbody,反馈测试用例个数的div的id是caseCount。

下面是两种实现的方法:

// 实时监听DOM变化,方法1:jQuery监听div内容变化(使用这种方法注意id为caseCount的元素不要位于监听范围内,否则控制台会报错)
$('#monitorTbody').bind('DOMNodeInserted', function () {
    var count = $("#monitorTbody").find("tr").length;
    $("#caseCount").html("测试用例 " + count.toString() + "条过滤结果");
});

// 实时监听select组件变化,方法2:动态绑定select的change事件
$("select").change(function () {
    //延时两秒执行
    setTimeout(function () {
        var count = $("#monitorTbody").find("tr").length;
        $("#caseCount").html("测试用例 " + count.toString() + "条过滤结果");
    }, 2000);
});

使用方法一需要注意:不要让id为caseCount的元素在id为monitorTbody的元素中,否则控制台会有无限递归报错。