我有一个从 datatables.net 动态填充数据表 jquery 插件的页面。
在页面上生成了 4 个表,这是由 .each jquery 调用执行的。我已经设置了一个数组来保存这些数据表:
oTable[x].
数据填充数据表后,我必须通过调用此函数来实例化过滤:
oTable[x].fnFilter("^" + $(this).val() + "$", 8, true);
我有一个计数器运行,每次创建新表时都会计数。我试图通过这样做使用for循环来处理过滤:
for (var x = 1; x < counter; x++) {
$("#selectMetricImperial" + x).live('change', function () { oTable[x].fnFilter("^" + $(this).val() + "$", 8, true); });
}
不幸的是,它似乎不起作用。当我通过下拉菜单执行过滤时,它会转到 .live 行,但每个人都以 x=1 的形式执行。我认为还有其他问题。
此代码确实有效,但不是动态的:
$("#selectMetricImperial" + 1).live('change', function () { oTable[1].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 2).live('change', function () { oTable[2].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 3).live('change', function () { oTable[3].fnFilter("^" + $(this).val() + "$", 8, true); });
$("#selectMetricImperial" + 4).live('change', function () { oTable[4].fnFilter("^" + $(this).val() + "$", 8, true); });
我想要发生的是根据在创建数据表的 .each 循环末尾传入的计数器动态生成上述代码。例如,如果 counter=5 则将生成上述语句中的 5 个,以便过滤适用于每个下拉列表。
我希望我能正确解释这一点。如果没有,请提出问题,我会调整我的问题以更好地解决我的问题。
谢谢你们的帮助!