写一个纯前端的模糊查询农产品的功能
时间: 2024-05-01 18:22:50 浏览: 58
好的,以下是一个纯前端的模糊查询农产品的功能的实现:
首先,我们需要一个包含农产品信息的数组,例如:
```javascript
const products = [
{ name: '苹果', price: 5 },
{ name: '香蕉', price: 3 },
{ name: '橙子', price: 4 },
{ name: '草莓', price: 6 },
{ name: '菠萝', price: 8 },
{ name: '橘子', price: 4 },
];
```
然后,我们需要一个输入框和一个按钮,用于输入查询关键词和触发查询操作:
```html
<input type="text" id="search-input">
<button onclick="searchProducts()">查询</button>
```
接下来,我们需要一个用于展示查询结果的容器:
```html
<ul id="product-list"></ul>
```
最后,我们需要一个 `searchProducts` 函数,用于进行模糊查询:
```javascript
function searchProducts() {
const keyword = document.getElementById('search-input').value.trim().toLowerCase();
const productList = document.getElementById('product-list');
productList.innerHTML = '';
if (!keyword) {
return;
}
const filteredProducts = products.filter(product => product.name.toLowerCase().includes(keyword));
if (filteredProducts.length > 0) {
filteredProducts.forEach(product => {
const li = document.createElement('li');
li.textContent = `${product.name} - ¥${product.price}`;
productList.appendChild(li);
});
} else {
const li = document.createElement('li');
li.textContent = '未找到相关农产品';
productList.appendChild(li);
}
}
```
这个函数会先获取输入框中的关键词,并将其转换为小写字母格式。然后,它会清空之前的查询结果,并检查关键词是否为空。如果关键词为空,它会直接返回不进行查询。如果关键词不为空,它会使用 `filter` 方法对农产品数组进行过滤,只保留名称中包含关键词的产品。最后,它会将查询结果显示在页面上。
完整的 HTML 代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>模糊查询农产品</title>
</head>
<body>
<input type="text" id="search-input">
<button onclick="searchProducts()">查询</button>
<ul id="product-list"></ul>
<script>
const products = [
{ name: '苹果', price: 5 },
{ name: '香蕉', price: 3 },
{ name: '橙子', price: 4 },
{ name: '草莓', price: 6 },
{ name: '菠萝', price: 8 },
{ name: '橘子', price: 4 },
];
function searchProducts() {
const keyword = document.getElementById('search-input').value.trim().toLowerCase();
const productList = document.getElementById('product-list');
productList.innerHTML = '';
if (!keyword) {
return;
}
const filteredProducts = products.filter(product => product.name.toLowerCase().includes(keyword));
if (filteredProducts.length > 0) {
filteredProducts.forEach(product => {
const li = document.createElement('li');
li.textContent = `${product.name} - ¥${product.price}`;
productList.appendChild(li);
});
} else {
const li = document.createElement('li');
li.textContent = '未找到相关农产品';
productList.appendChild(li);
}
}
</script>
</body>
</html>
```
阅读全文