日期:2014-05-16 浏览次数:20535 次
最近受我的朋友委托用js+HTML做一个像手册一样的程序,里面要有可展开的大纲,模糊查找等功能。我这个人说实在的懒,本来是不愿意的,但想起了父亲以前教我要给朋友搞好关系,再加上这也可以巩固自己的js技术,于是就开始开发这个程序,没想到却出了点小问题,我做的查找只能绝对查找。具体的js代码如下:
function search(){ var arr=new Array("my name","my father name","my brother name","my mother name","my friend name","Bula Bula"); var searchfont=document.getElementById('search').value; isCon(arr, searchfont); if(searchfont!="my name" && searchfont!="my father name" && searchfont!="my brother name" && searchfont!="my mother name" && searchfont!="my friend name" && searchfont!="Bula Bula"){ alert('Not found.'); } } function isCon(arr, val){ for(var i=0; i<arr.length; i++){ if(arr[i] == val){ if(i==0){ alert('ture.'); }else if(i==1){ alert('ture.'); }else if(i==2){ alert('ture.'); }else if(i==3){ alert('ture.'); }else if(i==4){ alert('ture.'); }else if(i==5){ alert('ture.'); } } } } /*这个是我做了修改的代码。如果你在html里加入这几行代码: <input type="text" id="search" value="" /> <input type="button" onclick="search()" value="查找" /> 就可以做绝对查找了。感兴趣的朋友可以试试看。*/
虽然我把查找功能做出来了,但这是绝对查找,可不行呀,不光是连答应下来的任务没有完成,还证明了自己技术不过关,于是我开始研究。终于工夫不负有心人,我耗尽了3天的研究时间,终于把这个环节给弄出来了。
接下来我便要开始讲解代码了。
首先来看:
var vData= ["name", "sex", "age", "job", "e-mail"];
这个环节很重要,如果程序运行起来,输入查找时,就是在这里开始查找,改了里面的值也就等于改了搜索出的结果。(说到运行,我不得不感到庆幸,因为js运行是不用编译的,而C/C++就要。但有时不编译也会带来麻烦,比如运行不成功,不知道哪里有错,总之个有长处短处)。
再看代码:
function find(sFind, sObj) { var nSize = sFind.length; var nLen = sObj.length; var sCompare; if(nSize <= nLen ){ for(var i = 0; i <= nLen - nSize + 1; i++){