当前位置:首页 > JavaScript

js实现简单的搜索框

2026-01-31 05:48:53JavaScript

实现搜索框的基本结构

HTML部分需要创建一个输入框和一个按钮,用于用户输入搜索关键词并触发搜索功能。

<input type="text" id="searchInput" placeholder="输入搜索关键词">
<button id="searchButton">搜索</button>
<div id="searchResults"></div>

添加事件监听器

为按钮添加点击事件监听器,当用户点击按钮时获取输入框的值并执行搜索操作。

document.getElementById('searchButton').addEventListener('click', function() {
    const searchTerm = document.getElementById('searchInput').value;
    if (searchTerm.trim() !== '') {
        performSearch(searchTerm);
    }
});

实现搜索功能

编写performSearch函数,模拟搜索过程或调用实际API。这里以模拟本地数据搜索为例。

function performSearch(searchTerm) {
    const mockData = ['apple', 'banana', 'cherry', 'date', 'elderberry'];
    const results = mockData.filter(item => 
        item.toLowerCase().includes(searchTerm.toLowerCase())
    );
    displayResults(results);
}

显示搜索结果

将搜索结果渲染到页面上,可以通过动态创建HTML元素来实现。

function displayResults(results) {
    const resultsContainer = document.getElementById('searchResults');
    resultsContainer.innerHTML = '';

    if (results.length === 0) {
        resultsContainer.innerHTML = '<p>未找到匹配结果</p>';
        return;
    }

    const ul = document.createElement('ul');
    results.forEach(item => {
        const li = document.createElement('li');
        li.textContent = item;
        ul.appendChild(li);
    });
    resultsContainer.appendChild(ul);
}

添加键盘事件支持

为提升用户体验,可以监听输入框的键盘事件,当用户按下Enter键时触发搜索。

document.getElementById('searchInput').addEventListener('keyup', function(event) {
    if (event.key === 'Enter') {
        const searchTerm = document.getElementById('searchInput').value;
        if (searchTerm.trim() !== '') {
            performSearch(searchTerm);
        }
    }
});

完整代码示例

将上述代码整合到一个完整的HTML文件中,可以直接运行测试。

js实现简单的搜索框

<!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="输入搜索关键词">
    <button id="searchButton">搜索</button>
    <div id="searchResults"></div>

    <script>
        document.getElementById('searchButton').addEventListener('click', function() {
            const searchTerm = document.getElementById('searchInput').value;
            if (searchTerm.trim() !== '') {
                performSearch(searchTerm);
            }
        });

        document.getElementById('searchInput').addEventListener('keyup', function(event) {
            if (event.key === 'Enter') {
                const searchTerm = document.getElementById('searchInput').value;
                if (searchTerm.trim() !== '') {
                    performSearch(searchTerm);
                }
            }
        });

        function performSearch(searchTerm) {
            const mockData = ['apple', 'banana', 'cherry', 'date', 'elderberry'];
            const results = mockData.filter(item => 
                item.toLowerCase().includes(searchTerm.toLowerCase())
            );
            displayResults(results);
        }

        function displayResults(results) {
            const resultsContainer = document.getElementById('searchResults');
            resultsContainer.innerHTML = '';

            if (results.length === 0) {
                resultsContainer.innerHTML = '<p>未找到匹配结果</p>';
                return;
            }

            const ul = document.createElement('ul');
            results.forEach(item => {
                const li = document.createElement('li');
                li.textContent = item;
                ul.appendChild(li);
            });
            resultsContainer.appendChild(ul);
        }
    </script>
</body>
</html>

扩展功能建议

  • 添加防抖功能,避免频繁触发搜索请求
  • 实现异步搜索,调用真实API获取数据
  • 增加搜索历史记录功能
  • 添加搜索建议或自动完成功能
  • 优化UI样式,提升用户体验

标签: 简单js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…