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实现的动态文字变换
Jul 28 Javascript
尝试在让script的type属性等于text/html
Jan 15 Javascript
7个jQuery最佳实践
Jan 12 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
webpack常用配置项配置文件介绍
Nov 07 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
React中的refs的使用教程
Feb 13 Javascript
Moment.js实现多个同时倒计时
Aug 26 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
jQuery实现穿梭框效果
Jan 19 jQuery
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
收集的DedeCMS一些使用经验
2007/03/17 PHP
PHP_MySQL教程-第一天
2007/03/18 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
js常用函数 不错
2006/09/08 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
virtualenv介绍及简明教程
2020/06/23 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
出国签证在职证明
2014/01/16 职场文书
国庆宣传标语
2014/06/30 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
家庭经济困难证明
2015/06/23 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP