价格查询涉及方法:filter
商品查询涉及方法:some
标签部分:
<div class="search"> 按照价格查询: <input type="text" class="start"> - <input type="text" class="end"> <button class="search-price">搜索</button> 按照商品名称查询: <input type="text" class="product"> <button class="search-pro">查询</button> </div> <table> <thead> <tr> <th>id</th> <th>产品名称</th> <th>价格</th> </tr> </thead> <tbody> </tbody> </table>
CSS部分:
<style> table { width: 400px; border: 1px solid #000; border-collapse: collapse; margin: 0 auto; } td, th { border: 1px solid #000; text-align: center; } input { width: 50px; } .search { width: 600px; margin: 20px auto; } </style>
JS部分:
<script> // 利用新增数组方法操作数据 var data = [{ id: 1, pname: '小米', price: 3999 }, { id: 2, pname: 'oppo', price: 999 }, { id: 3, pname: '荣耀', price: 1299 }, { id: 4, pname: '华为', price: 1999 },]; var tbody = document.querySelector('tbody'); //刚打开就渲染到页面 setDate(data); //封装函数 function setDate(data) { //清空内容 tbody.innerHTML = '' data.forEach(function (value) { // console.log(value); var tr = document.createElement('tr'); tr.innerHTML = '<td>' + value.id + '</td> <td>' + value.pname + '</td><td>' + value.price + '</td>' tbody.appendChild(tr) }) } // ----------------价格查询-------------------- var start = document.querySelector('.start'); //低价 var end = document.querySelector('.end'); //高价 var searchPrice = document.querySelector('.search-price'); //按钮 //绑定单击事件 searchPrice.addEventListener('click', function () { var newDate = data.filter(function (value) { return value.price >= start.value && value.price <= end.value; }) //将最新的数据渲染到页面 setDate(newDate); }) // ------------------商品查询---------------------------- var product = document.querySelector('.product'); //商品名称输入框 var searchPro = document.querySelector('.search-pro'); //商品名称查询按钮 //单击事件 searchPro.addEventListener('click', function () { //创建一个空数组接收查询的内容 var arr = [] data.some(function (value) { // console.log(value); if (value.pname == product.value) { console.log(value); arr.push(value) return true; } }) setDate(arr) }) </script>
还没有评论,来说两句吧...