动态自动搜索 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,如需转载请自行联系原作者



相关文章
|
4月前
|
JavaScript 前端开发
js中模糊搜索 模糊匹配如何实现?
js中模糊搜索 模糊匹配如何实现?
|
4月前
|
前端开发 JavaScript
百度搜索:蓝易云【用JavaScript和HTML实现一个精美的计算器网页】
该计算器网页使用HTML定义了页面结构,CSS样式使其具有精美的外观,而JavaScript脚本实现了计算器的逻辑。用户可以通过按钮输入数字和操作符,并通过“=”按钮来进行计算,计算结果会显示在文本框中。
43 6
|
7月前
|
Web App开发 JavaScript 前端开发
Chrome 开发者工具里根据关键字搜索,结果列表里的 JavaScript 文件名后面跟的 ‘eval‘ 是什么含义
Chrome 开发者工具里根据关键字搜索,结果列表里的 JavaScript 文件名后面跟的 ‘eval‘ 是什么含义
49 0
|
2天前
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
7 0
|
12天前
|
JavaScript 前端开发
JavaScript模糊搜索功能
JavaScript模糊搜索功能
|
1月前
|
存储 JavaScript 前端开发
使用JavaScript实现复杂功能:一个完整的电商网站搜索功能
使用JavaScript实现复杂功能:一个完整的电商网站搜索功能
|
4月前
|
JavaScript
|
4月前
|
JavaScript Ubuntu 前端开发
百度搜索:蓝易云【ubuntu安装开发javascript ubuntu script教程】
现在,你已经在Ubuntu上成功安装了JavaScript开发环境,可以开始编写和运行JavaScript代码了。注意,在编写代码之前,建议先创建一个项目文件夹,并在其中初始化npm,这样你可以管理项目的依赖项和配置。
33 5
|
4月前
|
JavaScript
多条件搜索(单条件也可以)原生js/jquery
多条件搜索(单条件也可以)原生js/jquery
27 0
|
4月前
|
JavaScript
原生js做模糊搜索
原生js做模糊搜索
13 0