正如标题所述。我使用jQuery来完成这个魔术。我用一个自定义Contains
扩展,选择如下:客户端表过滤
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
我在interwebs发现。它工作正常。我使用它在结合以下:
$("#txtSurname, #txtForename").keyup(function() {
var forenameVal = $("#txtForename").val();
var surnameVal = $("#txtSurname").val();
$("#tblEmployees tr").show();
if (forenameVal.length > 0) { $("#tblEmployees tr td:nth-child(1):not(:Contains('" + forenameVal + "'))").parent().hide(); }
if (surnameVal.length > 0) { $("#tblEmployees tr td:nth-child(2):not(:Contains('" + surnameVal + "'))").parent().hide(); }
});
然而,这是非常低效的,并与500行的表它极大斗争。在编写高效的选择器时,我的jQuery超级忍者技能不如下一个开发人员那么出色,因此我想知道是否有更好的方法来做到这一点?
不幸的是,尽管这个建议很有意义,但仍然非常糟糕。 – Kezzer 2009-12-23 14:43:55
您是否试过取出“:not(:Contains”)选择器来查看瓶颈是否在哪里? – 2009-12-23 14:50:29