javascript實(shí)現(xiàn)查詢商品功能
本文實(shí)例為大家分享了javascript實(shí)現(xiàn)查詢商品功能的具體代碼,供大家參考,具體內(nèi)容如下
這是沒有點(diǎn)擊查詢的主界面圖

這是點(diǎn)擊名稱查詢之后

按照價(jià)格查詢

代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript查詢功能</title>
<style>
body{
font-family: "微軟雅黑";
font-size: 18px;
}
table {
width: 800px;
border: 1px solid #000;
border-collapse: collapse;
margin: 0 auto;
}
td,th {
border: 1px solid #000;
text-align: center;
}
input {
width: 70px;
}
.search {
width: 600px;
margin: 20px auto;
}
</style>
</head>
<body>
<div class="search">
按照價(jià)格查詢: <input type="text" class="start"> - <input type="text" class="end">
<button class="search-price">搜索</button>
<br><br>
按照商品名稱查詢: <input type="text" class="product">
<button class="search-pro">查詢</button>
</div>
<table>
<thead>
<tr>
<th>產(chǎn)品名稱</th>
<th>價(jià)格</th>
<th >處理器</th>
<th >屏幕</th>
<th >相機(jī)</th>
<th >電池</th>
<th >特色功能</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
// 利用新增數(shù)組方法操作數(shù)據(jù)
var data = [
{
pname: '華為mateX2',
price: 17999,
processor:'麒麟9000',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為mate40Pro',
price: 6599,
processor:'麒麟9000',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為mate40',
price: 4999,
processor:'麒麟9000E',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為mate30Pro',
price: 5499,
processor:'麒麟990',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為mate30',
price: 3599,
processor:'麒麟990',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為P40Pro',
price: 7999,
processor:'麒麟990',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為P40',
price: 3999,
processor:'麒麟990',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '榮耀30Pro',
price: 3999,
processor:'麒麟990',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '華為mate20Pro',
price: 1599,
processor:'麒麟980',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '小米11Pro',
price: 4799,
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '小米11',
price: 3799,
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '小米Mix4',
price: 5499,
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '紅米K40Pro',
price: 2999,
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: '紅米K40',
price: 1999,
processor:'高通驍龍870',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: 'VivoX60Pro',
price: 5499,
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: 'VivoX60',
price: 3499,
processor:'獵戶座',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
{
pname: 'OPPOReno6Pro',
price: '',
processor:'高通驍龍888',
screen:'',
camera:'',
Battery:'',
CharacteristicFunction:'',
},
];
// 1. 定義和獲取元素
var tbody = document.querySelector('tbody');/*定義tbody*/
var search_price = document.querySelector('.search-price');/*定義search-price*/
var processor=document.querySelector('.processor');/*定義處理器*/
var screen=document.querySelector('.screen');/*定義屏幕*/
var camera=document.querySelector('.camera');/*定義相機(jī)*/
var Battery=document.querySelector('.Battery');/*定義電池*/
var CharacteristicFunction=document.querySelector('.CharacteristicFunction');/*特色功能*/
var start = document.querySelector('.start');
var end = document.querySelector('.end');
var product = document.querySelector('.product');
setDate(data);
// 2. 把數(shù)據(jù)渲染到頁(yè)面中
function setDate(mydata) {
// 先清空原來(lái)tbody 里面的數(shù)據(jù)
tbody.innerHTML = '';
mydata.forEach(function(value) { /*添加*/
var tr = document.createElement('tr');
tr.innerHTML = '<td>' + value.pname +'</td><td>'
+ value.price+'</td><td>'
+ value.processor+'</td><td>'
+ value.screen+'</td><td>'
+ value.camera+'</td><td>'
+ value.Battery+'</td><td>'
+ value.CharacteristicFunction+'</td>'
;
tbody.appendChild(tr);
});
}
// 3. 根據(jù)價(jià)格查詢商品
// 點(diǎn)擊按鈕,就可以根據(jù)商品價(jià)格去篩選數(shù)組里面的對(duì)象
search_price.addEventListener('click', function() {
var newDate = data.filter(function(value) {
return value.price >= start.value && value.price <= end.value;
});
console.log(newDate);
// 把篩選完之后的對(duì)象渲染到頁(yè)面中
setDate(newDate);
});
// 4.模糊查找---- 根據(jù)商品名稱查找商品模糊查找
product.addEventListener('keyup', function() {
// 把拿到的數(shù)據(jù)渲染到頁(yè)面中
var result = data.filter(function(value) {
if (value.pname.includes(product.value)) {
return value
}
})
setDate(result);
setDate(data.filter(function(value) {
if (value.pname.includes(product.value)) {
return value
}
}));
})
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Windows下支持自動(dòng)更新的Electron應(yīng)用腳手架的方法
這篇文章主要介紹了Windows下支持自動(dòng)更新的Electron應(yīng)用腳手架的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12
js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法
下面小編就為大家?guī)?lái)一篇js接收并轉(zhuǎn)化Java中的數(shù)組對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-08-08
javascript 強(qiáng)制刷新頁(yè)面的實(shí)現(xiàn)代碼
javascript 強(qiáng)制刷新頁(yè)面的代碼,大家經(jīng)常能用的到。2009-12-12
通過JS 獲取Mouse Position(鼠標(biāo)坐標(biāo))的代碼
最近我發(fā)現(xiàn)在webpage中獲取空間的絕對(duì)坐標(biāo)時(shí),如果有滾動(dòng)條就會(huì)有錯(cuò),后來(lái)用無(wú)名發(fā)現(xiàn)的方法得以解決。2009-09-09
Google AJAX 搜索 API實(shí)現(xiàn)代碼
Google AJAX 搜索 API實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-11-11
支付寶小程序?qū)崿F(xiàn)類似微信多行輸入功能(思路詳解)
這篇文章主要介紹了支付寶小程序?qū)崿F(xiàn)類似微信多行輸入功能,輸入超過 8 行的時(shí)候會(huì)出現(xiàn)滾動(dòng),這樣做的好處就是輸入框不會(huì)直接頂?shù)巾?yè)面最頂部,支付寶小程序?qū)崿F(xiàn)多行輸入框:使用textarea多行輸入框?qū)崿F(xiàn),感興趣的朋友一起看看吧2024-02-02

