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 相关文章推荐
javascript中获取选中对象的类型
Apr 02 Javascript
图片动画横条广告带上下滚动的JS代码
Oct 25 Javascript
js的2种继承方式详解
Mar 04 Javascript
JavaScript中的null和undefined区别介绍
Jan 01 Javascript
当jquery ajax遇上401请求的解决方法
May 19 Javascript
深入理解js generator数据类型
Aug 16 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
vue.js数据绑定操作详解
Apr 23 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
Dec 03 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 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将部分内容用星号替换
2020/04/21 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
读jQuery之三(构建选择器)
2011/06/11 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
巧用canvas
2017/01/21 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
2020/04/07 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
专科文秘应届生求职信
2013/11/18 职场文书
出生证明公证书
2014/04/09 职场文书
国旗下的演讲稿
2014/05/08 职场文书
社区重阳节活动总结
2015/03/24 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
2016年元旦寄语
2015/08/17 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL