我正在尝试在表中添加过滤功能,其中包含大量表数据。差不多800 td
。
我可以在键入输入时搜索文本但我的逻辑很慢。它不允许我在搜索之前完全写入文本,这种文本在文本输入中存在。
所以我正在寻找帮助以找到此代码中的错误。如何优化这个?任何人都可以帮助我。
这是CODE
jQuery("#sear").keyup(function(){
var searching_val = jQuery(this).val();
var mysearch = new RegExp(searching_val,'gi');
jQuery("#container td").each(function(){
if(mysearch.test(jQuery(this).data('samp'))){
jQuery(this).show();
}else{
jQuery(this).fadeOut();
}
});
});
我在小提琴中显示的例子只有两行。在Real中我有更多Rows
更多Table Data
。
当我们有更多td
时这是否是常见行为?或者有没有办法优化这个?我也无法避免循环遍历<td>
data-samp
属性,因为内容格式不同,这些不在示例中。因此,所有这些都存储在表td
的数据属性中以检索它以进行输入。
任何帮助都将不胜感激。
答案 0 :(得分:1)
以下是适合您的代码:
jQuery("#sear").keyup(function(e){
var searching_val = jQuery(this).val();
setTimeout(function(){
if(searching_val != ""){ // If search value is not empty value
jQuery("#container td").show();
jQuery("#container td").each(function(){
if(jQuery(this).text().indexOf(searching_val) < 0){
jQuery(this).hide();
}
});
}else{
jQuery("#container td").show(); // Show all td's
}
}, 2000);
});
就是这样。