js实现模糊匹配功能
功能描述:
在搜索框中输入某一个字段,可以查询到相关的内容
功能实现:
1. 先声明变量用于保存输入框以及表格里面的内容
2. 循环遍历
遍历表格每一行,查找匹配项
3. 判断
如果输入框里面的内容跟表格中某个td的内容相似,则表格中的某行就显示,否则隐藏
功能实现:
<html>
<head>
<style>
#myInput{
width:100%;
font-size:16px;
padding:12px20px12px40px;
border:1pxsolid#ddd;
margin-bottom:12px;
}
#myTable{
border-collapse:collapse;
width:100%;
border:1pxsolid#ddd;
font-size:18px;
}
#myTableth,#myTabletd{
text-align:left;
padding:12px;
}
#myTabletr{
border-bottom:1pxsolid#ddd;
}
#myTabletr.header,#myTabletr:hover{
background-color:#f1f1f1;
}
</style>
</head>
<body>
<inputtype="text"id="myInput"onkeyup="myFunction()"placeholder="搜索...">
<tableid="myTable">
<trclass="header">
<thstyle="width:60%;">项目名称</th>
<thstyle="width:40%;">时间</th>
</tr>
<tr>
<td>redPackets</td>
<td>2017.2.6</td>
</tr>
<tr>
<td>traffic</td>
<td>2016.12.25</td>
</tr>
<tr>
<td>creditCard</td>
<td>2017.1.18</td>
</tr>
<tr>
<td>returnMoney</td>
<td>2016.11.25</td>
</tr>
</table>
<script>
functionmyFunction(){
//声明变量
varinput,filter,table,tr,td,i;
input=document.getElementById("myInput");
filter=input.value.toUpperCase();
table=document.getElementById("myTable");
tr=table.getElementsByTagName("tr");
//循环表格每一行,查找匹配项
for(i=0;i<tr.length;i++){
td=tr[i].getElementsByTagName("td")[0];
if(td){
if(td.innerHTML.toUpperCase().indexOf(filter)>-1){
tr[i].style.display="";
}else{
tr[i].style.display="none";
}
}
}
}
</script>
</body>
</html>
扩展:模拟通讯录搜索提示
<html>
<head>
<style>
#myInput{
width:100%;
font-size:16px;/*加大字体*/
padding:12px20px12px40px;
border:1pxsolid#ddd;
margin-bottom:12px;
}
#myUL{
list-style-type:none;
padding:0;
margin:0;
}
#myULlia{
border:1pxsolid#ddd;/*链接添加边框*/
margin-top:-1px;
background-color:#f6f6f6;
padding:12px;
text-decoration:none;
font-size:18px;
color:black;
display:block;
}
#myULlia.header{
background-color:#5587A2;
cursor:default;
}
#myULlia:hover:not(.header){
background-color:#eee;
}
</style>
</head>
<body>
<inputtype="text"id="myInput"onkeyup="myFunction()"placeholder="搜索...">
<ulid="myUL">
<li><ahref="#"class="header">A</a></li>
<li><ahref="#">Angel</a></li>
<li><ahref="#">Adobe</a></li>
<li><ahref="#">Anne</a></li>
<li><ahref="#"class="header">B</a></li>
<li><ahref="#">Betty</a></li>
<li><ahref="#">Bella</a></li>
<li><ahref="#">Brown</a></li>
<li><ahref="#"class="header">C</a></li>
<li><ahref="#">Calvin</a></li>
<li><ahref="#">Chris</a></li>
<li><ahref="#">Claire</a></li>
<li><ahref="#"class="header">D</a></li>
<li><ahref="#">David</a></li>
<li><ahref="#">Daniel</a></li>
<li><ahref="#">Dora</a></li>
<li><ahref="#"class="header">E</a></li>
<li><ahref="#">Emily</a></li>
<li><ahref="#">Elena</a></li>
<li><ahref="#">Eufemia</a></li>
</ul>
<script>
functionmyFunction(){
//声明变量
varinput,filter,ul,li,a,i;
input=document.getElementById('myInput');
filter=input.value.toUpperCase();
ul=document.getElementById("myUL");
li=ul.getElementsByTagName('li');
//循环所有列表,查找匹配项
for(i=0;i<li.length;i++){
a=li[i].getElementsByTagName("a")[0];
if(a.innerHTML.toUpperCase().indexOf(filter)>-1){
li[i].style.display="";
}else{
li[i].style.display="none";
}
}
}
</script>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。