Javascript 如何在键向上时进行快速搜索筛选?
我试图在一个包含大量表数据的表中添加一个过滤器功能。几乎800个Javascript 如何在键向上时进行快速搜索筛选?,javascript,jquery,regex,optimization,Javascript,Jquery,Regex,Optimization,我试图在一个包含大量表数据的表中添加一个过滤器功能。几乎800个td 我可以在输入时搜索文本,但我的逻辑非常慢。它不允许我在搜索之前完整地写下文本,这有点像是文本输入中的停顿 因此,我正在寻找一个帮助,以找出这段代码中的错误。如何对此进行优化?有人能帮我吗 这是密码 jQuery("#sear").keyup(function(){ var searching_val = jQuery(this).val(); var mysearch = new RegExp(searching_val,'g
td
我可以在输入时搜索文本,但我的逻辑非常慢。它不允许我在搜索之前完整地写下文本,这有点像是文本输入中的停顿
因此,我正在寻找一个帮助,以找出这段代码中的错误。如何对此进行优化?有人能帮我吗
这是密码
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();
}
});
});
我在fiddle中展示的示例只有两行。实际上,我有更多的行
和更多的表数据
当我们有更多的td时,这是常见的行为吗?或者有没有办法优化这个?我无法避免循环使用
数据samp
属性,因为内容的格式不同,这些格式与示例中的格式不同。所以所有这些都存储在一个表的data属性td
中,以检索它进行输入
任何帮助都将不胜感激。以下是适用于您的代码:
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);
});
jQuery(“#sear”).keyup(函数(e){
var search_val=jQuery(this.val();
setTimeout(函数(){
如果(搜索值!=“”){//如果搜索值不是空值
jQuery(“#container td”).show();
jQuery(“#container td”).each(function(){
if(jQuery(this).text().indexOf(search_val)<0){
jQuery(this.hide();
}
});
}否则{
jQuery(“#container td”).show();//显示所有td
}
}, 2000);
});
就这样。谢谢你的帮助。我将您的解决方案与
jQuery(this).data('samp')
一起使用,而不是jQuery(this).text()
但我仍然无法连续键入,文本输入挂起。我有更多的td在现实中我已经更新了代码,所以现在你可以通过按回车键输入搜索值来执行。享受。。!!有什么问题吗?我不希望他们按enter键。请告诉我您希望执行搜索的确切方式,以便我根据更新答案。当用户开始键入时,他们需要查看结果而无需等待。现在,当我输入一两个字符时,我甚至不能输入剩余的字母。这让我们不得不等到我输入的第一个字母出现后再输入剩余的字母。它正在挂起输入文本以进行键入