JS如何配合input框实现模糊搜索

在JavaScript中,实现一个模糊搜索的搜索框功能,通常需要以下几个步骤:

  1. 创建一个HTML输入框和一个显示搜索结果的元素。
  2. 监听输入框的input事件,当用户输入时触发搜索。
  3. 在事件处理函数中,根据用户输入的关键词进行模糊搜索。
  4. 更新显示搜索结果的元素。
以下是一个简单的示例代码:
HTML部分:
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>模糊搜索示例</title>  
</head>  
<body>  
    <input type="text" id="searchInput" placeholder="输入关键词进行搜索...">  
    <ul id="searchResults"></ul>  
  
    <script src="script.js"></script>  
</body>  
</html>
JavaScript部分 (script.js):
// 假设这是你的原始数据,实际应用中可能从服务器获取或从其他数据源获取  
const data = [  
    { id: 1, name: '苹果' },  
    { id: 2, name: '香蕉' },  
    { id: 3, name: '橙子' },  
    { id: 4, name: '桃子' },  
    // ...更多数据  
];  
  
const searchInput = document.getElementById('searchInput');  
const searchResults = document.getElementById('searchResults');  
  
// 监听输入框的input事件  
searchInput.addEventListener('input', function(event) {  
    const query = event.target.value.trim().toLowerCase(); // 获取用户输入的关键词,并转换为小写以便进行不区分大小写的搜索  
    const filteredData = data.filter(item => item.name.toLowerCase().includes(query)); // 根据关键词进行模糊搜索,返回匹配项数组  
    displaySearchResults(filteredData); // 显示搜索结果  
});  
  
function displaySearchResults(data) {  
    // 清空之前的搜索结果  
    searchResults.innerHTML = '';  
  
    // 遍历匹配项数组,创建对应的li元素并添加到ul中  
    data.forEach(item => {  
        const li = document.createElement('li');  
        li.textContent = item.name; // 显示名称,你也可以根据需要显示其他信息  
        searchResults.appendChild(li);  
    });  
}

这个示例中,我们创建了一个包含一些水果名称的数据数组。当用户在搜索框中输入时,我们会根据用户输入的关键词对数据进行模糊搜索,并将匹配的结果显示在下方的列表中。注意,这个示例是简单的客户端搜索,对于大型数据集或需要实时更新的数据,你可能需要考虑使用服务器端搜索或其他更高效的技术。

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值