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 相关文章推荐
Js 获取HTML DOM节点元素的方法小结
Apr 24 Javascript
javascript中使用css需要注意的地方小结
Sep 01 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
详解vue中axios的使用与封装
Mar 20 Javascript
Three.js实现雪糕地球的使用示例详解
Jul 07 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读取目录及子目录下所有文件名的方法
2014/10/20 PHP
php生成随机颜色的方法
2014/11/13 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
python 使用get_argument获取url query参数
2017/04/28 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
Python 3.8 新功能全解
2019/07/25 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python爬虫实现获取下一页代码
2020/03/13 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
介绍下java.util.Arrays类
2012/10/16 面试题
幼儿园教师培训方案
2014/02/04 职场文书
实习评语大全
2014/04/26 职场文书
基层党员对照检查材料
2014/08/25 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android