js const searchInput = document.getElementById('search-input'); const searchResults = document.getElementById('search-results');2. 监听搜索框的输入事件,每次输入时获取搜索关键词,然后根据关键词进行搜索并更新搜索结果容器的内容。
js searchInput.addEventListener('input', function() { const keyword = this.value.trim(); // 获取搜索关键词并去除两端空格 if (keyword) { const results = search(keyword); // 搜索关键词 updateResults(results); // 更新搜索结果 } else { clearResults(); // 搜索关键词为空时清空搜索结果 } });3. 实现搜索函数,根据关键词从数据源中筛选匹配的结果。
js function search(keyword) { const data = [...]; // 数据源,可以是数组、对象等 const results = data.filter(item => { return item.title.toLowerCase().includes(keyword.toLowerCase()); // 匹配标题中包含关键词的项 }); return results; }4. 实现更新搜索结果的函数,将搜索结果以HTML字符串的形式渲染到搜索结果容器中。
js function updateResults(results) { let html = ''; results.forEach(item => { const title = item.title.replace(new RegExp(keyword, 'ig'), '$&'); // 将关键词高亮显示 const content = item.content; html += `5. 实现清空搜索结果的函数,将搜索结果容器的内容清空。`; }); searchResults.innerHTML = html; }${title}
${content}
js function clearResults() { searchResults.innerHTML = ''; }完整代码如下:
js const searchInput = document.getElementById('search-input'); const searchResults = document.getElementById('search-results'); searchInput.addEventListener('input', function() { const keyword = this.value.trim(); if (keyword) { const results = search(keyword); updateResults(results); } else { clearResults(); } }); function search(keyword) { const data = [...]; const results = data.filter(item => { return item.title.toLowerCase().includes(keyword.toLowerCase()); }); return results; } function updateResults(results) { let html = ''; results.forEach(item => { const title = item.title.replace(new RegExp(keyword, 'ig'), '$&'); const content = item.content; html += `其中,关键词高亮使用了CSS样式:`; }); searchResults.innerHTML = html; } function clearResults() { searchResults.innerHTML = ''; }${title}
${content}
css .highlight { color: red; font-weight: bold; }
1. EventTarget.addEventListener()