js实现查询商品案例


Posted in Javascript onJuly 22, 2020

本文实例为大家分享了js实现查询商品的具体代码,供大家参考,具体内容如下

<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-prro">查询</button>
 </div>
 <table>
  <thead>
   <tr>
    <th>id</th>
    <th>产品名称</th>
    <th>价格</th>
   </tr>
  </thead>
  <tbody>
   <!-- <tr>
    <td>1</td>
    <td>小米</td>
    <td>2000</td>
   </tr>
   <tr>
    <td>2</td>
    <td>oppo</td>
    <td>999</td>
   </tr>
   <tr>
    <td>3</td>
    <td>荣耀</td>
    <td>1299</td>
   </tr>
   <tr>
    <td>4</td>
    <td>华为</td>
    <td>1999</td>
   </tr> -->
  </tbody>
</table>

 css:

*{
   margin: 0;
   padding: 0;
  }
  body{
   width: 1000px;
   margin: 0 auto;
  }
  .search{
   text-align: center;
   /* margin: 0 auto; */
  }
  table{
   padding-top: 20px;
   width: 1000px;
   height: 100px;
   /* border: 1px solid #ccc; */
   margin:0 auto ; 
   
  }
  th,tr,td{
   border: 1px solid #ccc;
   text-align: center;
   height: 50px;
 }

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
  } 
  ];

  //1.获取相应的元素
  var tbody = document.querySelector('tbody');
  //2.把数据渲染到页面中
  //forEach()。属于数组中的方法,第一个参数表示为每个元素,第二个参数为每个元素的索引值,第三个参数为整体元素的表达式
  

  //为了方便使用渲染函数,需要先调用一次,将商品渲染
  setDate(data);


  //应为筛选后也要进行渲染,此时可以将此步设置为封装函数
  function setDate(mydata){

   //重新渲染数据的时候,先清空tbody原来的数据
   tbody.innerHTML = '';


   mydata.forEach(function(value){
   //测试
   // console.log(value);

   //将每个对象放进tbody中去,需要先给tbody创建行 tr
   var tr = document.createElement('tr'); 
   //已知每个对想的属性名为value,因此可以利用获取对象中值的方式进行赋值 例如:value.id
   tr.innerHTML = '<td>'+value.id +'</td> <td>'+value.pname +'</td> <td>'+value.price +'</td>';
   tbody.appendChild(tr); 
   });
  }


  //3.利用判断查询商品信息
  //filter()方法可以用到判断的效果
  //首先获取相应的元素信息
  var search_price = document.querySelector('.search-price'); 
  var start = document.querySelector('.start');
  var end = document.querySelector('.end');

  search_price.addEventListener('click',function(){
   // alert(1) //测试
   //定义一个变量名进行数据接受
   var newDate = data.filter(function(value){
    // console.log(value);
    //返回值: 起始价 <= 价格 <= 最终价
    return value.price >= start.value && value.price <= end.value; 
   });
  // 打印变量名
  // console.log(newDate);//测试
  //将筛选完之后的对象渲染到页面中去
  //调用渲染函数
   setDate(newDate);
  })
  

  //4.通过商品名称查询,此处的查询可以利用filter()方法进行书写,也可以利用以下方式书写查找
  //通过some进行查询,因为some方法查到后直接退出,比较有效率,同时some返回的值为布尔值
  //首先获取相关元素
  var product = document.querySelector('.product');//输入
  var search_pro = document.querySelector('.search-prro'); //查询

  search_pro.addEventListener('click',function(){
   //创建一个新的数组用来获取
   var arr = [];
   data.some(function(value){
    if(value.pname === product.value){
     // console.log(value); //测试
     arr.push(value);//只要是满足条件,就将获取到的元素添加到新数组中去
     return true; //return 必须为true
    }
   });
   // 在此调用渲染函数
   setDate(arr); //此时的 value.price 中的value形参传递的是arr实参对象
  })

</script>

实现效果:

js实现查询商品案例

为什么最后需要利用some进行查询:

js实现查询商品案例

js实现查询商品案例

因为利用数组的some方法,查询遍历,只要返回值结果为true便可结束程序,不需要浪费太多的事件,大大加强了办事效率

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
php 中序列化和json使用介绍
Jul 08 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 Javascript
微信小程序 POST请求的实例详解
Sep 29 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
防止Layui form表单重复提交的实现方法
Sep 10 Javascript
JS实现容器模块左右拖动效果
Jan 14 Javascript
vue element 关闭当前tab 跳转到上一路由操作
Jul 22 #Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 #Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 #Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 #Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 #Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 #Javascript
js实现带积分弹球小游戏
Jul 21 #Javascript
You might like
php中opendir函数用法实例
2014/11/15 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
python实现字符串和日期相互转换的方法
2015/05/13 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python的argparse库使用详解
2018/10/09 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
Python创建数字列表的示例
2019/11/28 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python如何获取文件指定行的内容
2020/05/27 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
高中美术教学反思
2014/01/19 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
妈妈活动方案
2014/08/15 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
绿色环保倡议书
2015/04/28 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
导游词之无锡东林书院
2019/12/11 职场文书