当前位置:网站首页>查询商品案例-页面渲染数据
查询商品案例-页面渲染数据
2022-07-03 01:17:00 【Blizzard前端】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<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>
</head>
<body>
<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中 -->
</tbody>
</table>
<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'); var search_price = document.querySelector('.search-price'); var start = document.querySelector('.start'); var end = document.querySelector('.end'); var product = document.querySelector('.product'); var search_pro = document.querySelector('.search-pro'); setDate(data); // 2. 把数据渲染到页面中 function setDate(mydata) {
// 先清空原来tbody 里面的数据 tbody.innerHTML = ''; mydata.forEach(function(value) {
// console.log(value); var tr = document.createElement('tr'); //先为每个数组元素创建一个行,在把这个行追加到tbody当中去 tr.innerHTML = '<td>' + value.id + '</td><td>' + value.pname + '</td><td>' + value.price + '</td>'; tbody.appendChild(tr); }); } // 3. 根据价格查询商品 // 当我们点击了按钮,就可以根据我们的商品价格去筛选数组里面的对象 search_price.addEventListener('click', function() {
// alert(11); var newDate = data.filter(function(value) {
return value.price >= start.value && value.price <= end.value; }); console.log(newDate); // 把筛选完之后的对象渲染到页面中 setDate(newDate); }); // 4. 根据商品名称查找商品 // 如果查询数组中唯一的元素, 用some方法更合适,因为它找到这个元素,就不在进行循环,效率更高] 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); }) </script>
</body>
</html>
some和forEach区别
<script>
var arr = ['red', 'green', 'blue', 'pink'];
// 1. forEach迭代 遍历
console.log('forEach:');
arr.forEach(function(value) {
if (value == 'green') {
console.log('找到了该元素');
return true; // 在forEach 里面 return 不会终止迭代
}
console.log(11);
})
// 如果查询数组中唯一的元素, 用some方法更合适,
console.log('some:');
arr.some(function(value) {
if (value == 'green') {
console.log('找到了该元素');
return true; // 在some 里面 遇到 return true 就是终止遍历 迭代效率更高
}
console.log(11);
});
// arr.filter(function(value) {
// if (value == 'green') {
// console.log('找到了该元素');
// return true; // // filter 里面 return 不会终止迭代
// }
// console.log(11);
// });
</script>
边栏推荐
- 网络安全-中间人攻击
- Type expansion of non ts/js file modules
- 【數據挖掘】任務6:DBSCAN聚類
- How is the mask effect achieved in the LPL ban/pick selection stage?
- Installation and use of serial port packet capturing / cutting tool
- 网络安全-破解系统密码
- 网络安全-NAT网络地址转换
- Function definition and call, this, strict mode, higher-order function, closure, recursion
- Concise analysis of redis source code 11 - Main IO threads and redis 6.0 multi IO threads
- Qtablewidget lazy load remaining memory, no card!
猜你喜欢
CF1617B Madoka and the Elegant Gift、CF1654C Alice and the Cake、 CF1696C Fishingprince Plays With Arr
Steps to obtain SSL certificate private key private key file
【数据挖掘】任务3:决策树分类
一比特苦逼程序員的找工作經曆
Network security - vulnerabilities and Trojans
Vant 实现简单的登录注册模块以及个人用户中心
STM32 - GPIO input / output mode
Installation and use of serial port packet capturing / cutting tool
电信客户流失预测挑战赛
Meituan dynamic thread pool practice ideas, open source
随机推荐
【数据挖掘】任务4:20Newsgroups聚类
Steps to obtain SSL certificate private key private key file
Vant implements a simple login registration module and a personal user center
传输层 TCP主要特点和TCP连接
Type expansion of non ts/js file modules
Mathematical knowledge: Nim game game theory
High-Resolution Network (篇一):原理刨析
网络安全-ACL访问控制列表
[data mining] task 4:20newsgroups clustering
C application interface development foundation - form control (2) - MDI form
Some functions of applet development
Mathematical knowledge: step Nim game game game theory
What operations need attention in the spot gold investment market?
[error record] an error is reported in the fluent interface (no mediaquery widget ancestor found. | scaffold widgets require a mediaquery)
Druid database connection pool
Sweet talk generator, regular greeting email machine... Open source programmers pay too much for this Valentine's day
Tâche 6: regroupement DBSCAN
【面试题】1369- 什么时候不能使用箭头函数?
小程序开发的部分功能
网络安全-钓鱼