使用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的元素中,否则控制台会有无限递归报错。