模糊查找(遍历数组)

<

!--样式-->

<style type="text/css">

    table{

        border-collapse: collapse;

         }

    th,td{

        width: 100px;

        height: 30px;

        border: 1px solid #000000;

        text-align: center;

        line-height: 30px;

        }

         </style>

<input type="text" id="text" />

<button id="btn">搜索</button>

<table id="table"></table>

<script type="text/javascript">

    //模糊查找的概念:就是在文本框中输入你要搜索内容的其中一个字符或多个字符,就会将含有输入字符的所有内容调出

    var text=document.getElementById("text");//获取文本框

    var btn=document.getElementById("btn");//获取按钮

    var table=document.getElementById("table");//获取表格

    var data=[

       {id:1001,icon:"img/1.png",name:"笔记本",num:1,price:10},

       {id:1002,icon:"img/2.png",name:"电脑",num:1,price:20},

       {id:1003,icon:"img/3.png",name:"记事本",num:1,price:30},

       {id:1004,icon:"img/4.png",name:"计算器",num:1,price:40},

       {id:1005,icon:"img/5.png",name:"订书机",num:1,price:50},

       {id:1006,icon:"img/6.png",name:"螃蟹",num:1,price:60},

       {id:1007,icon:"img/7.png",name:"毛蟹",num:1,price:70},

       {id:1008,icon:"img/8.png",name:"大虾",num:1,price:80},

       {id:1009,icon:"img/9.png",name:"皮皮虾",num:1,price:90},

       {id:1010,icon:"img/10.png",name:"龙虾",num:1,price:100}

       ];//定义数组

//数组的每一项元素都是一个对象

function getTable(arr){//写一个函数用来创建表格,放数组里面的内容

      var tr="<tr>";

      for(var str in arr[0]){

         tr+="<th>"+str+"</th>";//遍历某一行的属性名作为表头(以第一个元素为例)

         }

      tr+="</tr>";

         //遍历所有的元素将每个元素(即每个对象放在一行表格中)

      for(var i=0;i<arr.length;i++){

         tr+="<tr>";

         for(var str1 in arr[i]){//遍历每个对象的属性的值,放在表格中

             tr+="<td>"+arr[i][str1]+"</td>";

             }

             tr+="</tr>";

         }

         return tr;//返回行与列

        }

             //将数组中的内容以表格的形式呈现,将内容放在表格里面

      table.innerHTML=getTable(data);

         //点击按钮就会找到文本框中所含字的相应内容

     btn.addEventListener("click",clickHandler);

     function clickHandler(){

             var t=text.value;//获取到文本框中输入的内容

             var list=data.filter(function (item) {//利用filter具有筛选和截取的作用,筛选出数组中name值与文本框输入内容是否有相同的字

              return item.name.indexOf(t)>-1;//索引name

           });

           table.innerHTML=getTable(list);//把含有与文本框中输入字相同name的那一个元素放在表格中

         }

         </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值