动态自动搜索 Dynamic search (js版)

简介:
   
<input  id="titleFilter" onkeyup="ApplyFilter('artTitle','titleFilter');" />
<TABLE >
<TBODY>
<TR >
<TD >17</TD>
<TD ><a href="#" name="artTitle">Alice Mutton</a></TD>
</TR>
<TR >
<TD >17</TD>
<TD ><a href="#" name="artTitle">Alice Mutton</a></TD>
</TR>
</TBODY>
</TABLE>

 

 

JS:

var prevVal = null,timeoutId = null,slp=200,inproc=false;

function ApplyFilter(name,title){
    var filter = document.getElementById(title);
    if(timeoutId)
        window.clearTimeout(timeoutId);
    if(filter){   
        timeoutId = setTimeout("ShowFilteredArticles('" + filter.value + "','" + name + "')", slp);
    }
}

function ShowFilteredArticles(value, name)
{
    if(inproc) return;
    if(prevVal == value) return; else prevVal = value;
    inproc=true;
    var row,elems = document.getElementsByName(name);
    if(elems){
        var words = value.split(" ");
        var res = new Array(); 
        for(var i=0;i<words.length;i++)
            if (words[i].replace(" ","").length>0) 
                res.push(new RegExp("(?:.)*" + words[i] + "(?:.)*", "i"));

        for(var i = 0; i < elems.length; i++){
            var title = elems[i].innerHTML;
            var matched=true;
            if (res.length > 0) 
                for(var j=0;j<res.length;j++) if (!res[j].test(title)) {matched=false;break;}
            if(matched){
                row = elems[i].parentNode;
                while(row && row.tagName != "TR")row = row.parentNode;
                if(row && row.tagName == "TR")row.style.display = "";    
            }
            else{
                row = elems[i].parentNode;
                while(row && row.tagName != "TR")row = row.parentNode;
                if(row && row.tagName == "TR")row.style.display = "none";
            }
        }
    }
    inproc=false;
}

 

本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2009/12/15/1625171.html,如需转载请自行联系原作者



相关文章
|
9天前
|
JavaScript
js根据开始和结束时间进行搜索
js根据开始和结束时间进行搜索
|
20天前
|
移动开发 前端开发 JavaScript
uVIew Search 搜索
uVIew Search 搜索
19 0
|
5月前
|
前端开发 JavaScript
Bootstrap Table根据参数搜索功能
Bootstrap Table根据参数搜索功能
53 0
|
3月前
|
JavaScript
|
3月前
|
前端开发 API
uniapp中uview组件库的Search 搜索 的用法
uniapp中uview组件库的Search 搜索 的用法
143 0
|
4月前
|
JavaScript 前端开发
js查找筛选的方法
js查找筛选的方法
23 0
|
6月前
|
索引
29dwr - engine.js 功能(选项索引)
29dwr - engine.js 功能(选项索引)
12 0
|
JavaScript 前端开发 开发者
js 功能-搜索效果 |学习笔记
快速学习 js功能-搜索效果
97 0
js 功能-搜索效果 |学习笔记
|
网络协议 JavaScript 前端开发
<link>标签的几个用法,帮助提高页面性能
<link>标签的几个用法,帮助提高页面性能
433 0
<link>标签的几个用法,帮助提高页面性能
|
JavaScript
js实例对象使用属性和方法的搜索顺序
js实例对象使用属性和方法的搜索顺序
175 0
js实例对象使用属性和方法的搜索顺序

相关实验场景

更多