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

简介:
1 2 3 
HTML:
<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,如需转载请自行联系原作者



相关文章
|
8月前
|
前端开发 JavaScript
百度搜索:蓝易云【用JavaScript和HTML实现一个精美的计算器网页】
该计算器网页使用HTML定义了页面结构,CSS样式使其具有精美的外观,而JavaScript脚本实现了计算器的逻辑。用户可以通过按钮输入数字和操作符,并通过“=”按钮来进行计算,计算结果会显示在文本框中。
84 6
|
8月前
|
JavaScript 前端开发
js中模糊搜索 模糊匹配如何实现?
js中模糊搜索 模糊匹配如何实现?
|
7月前
|
JavaScript 前端开发
JS如何配合input框实现模糊搜索
JS如何配合input框实现模糊搜索
187 2
|
3月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
5月前
|
JavaScript 数据安全/隐私保护 Python
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
网易云音乐搜索接口JS逆向: Params、encSecKey加密和AES实战
341 4
|
6月前
|
数据采集 算法 JavaScript
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
JavaScript字符串搜索涵盖`indexOf`、`includes`及KMP算法。`indexOf`返回子字符串位置,`includes`检查是否包含子字符串。KMP是高效的搜索算法,尤其适合长模式匹配。示例展示了如何在数据采集(如网页爬虫)中使用这些方法,结合代理IP进行安全搜索。代码示例中,搜索百度新闻结果并检测是否含有特定字符串。学习这些技术能提升编程效率和性能。
150 1
揭开JavaScript字符串搜索的秘密:indexOf、includes与KMP算法
|
5月前
|
JavaScript 前端开发 安全
前程无忧搜索接口 JS 逆向:阿里系acw_sc__v2和Sign加密
前程无忧搜索接口 JS 逆向:阿里系acw_sc__v2和Sign加密
149 0
|
5月前
|
前端开发 JavaScript 开发者
fuse.js前端搜索简单使用的三个案例
通过这三个例子可以看出,Fuse.js 是一个功能丰富、易于实现的前端搜索库。它使开发者能够便捷地实现从基础到高级的搜索功能,无论是简单的列表搜索还是实时的搜索建议,都能够高效、精确地提供给用户所需的信息。
259 0
|
5月前
|
JavaScript
js分页+搜索
js分页+搜索
51 0
|
7月前
|
JavaScript 前端开发
JS实现select框实现模糊搜索
JS实现select框实现模糊搜索