使用js写一个搜索时自动补全的工具
创建一个搜索自动补全工具通常涉及监听输入框事件,向服务器发送请求以获取匹配项,并更新UI以显示这些匹配项。以下是一个简单的示例,使用原生JavaScript来演示这个过程:
- HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search Autocomplete</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<input type="text" id="searchInput" placeholder="Search...">
<div id="autocompleteResults"></div>
<script src="script.js"></script>
</body>
</html>
- CSS (
styles.css):
#autocompleteResults {
border: 1px solid #ccc;
max-height: 200px;
overflow-y: auto;
}
.resultItem {
padding: 5px;
cursor: pointer;
}
.resultItem:hover {
background-color: #f0f0f0;
}
- JavaScript (
script.js):
document.addEventListener('DOMContentLoaded', function() {
const searchInput = document.getElementById('searchInput');
const autocompleteResults = document.getElementById('autocompleteResults');
const mockData = ['Apple', 'Banana', 'Cherry', 'Dragonfruit', 'Elderberry', 'Fig', 'Grape'];
searchInput.addEventListener('input', function(event) {
const query = event.target.value.toLowerCase();
const results = mockData.filter(item => item.toLowerCase().startsWith(query));
displayResults(results);
});
function displayResults(results) {
autocompleteResults.innerHTML = ''; // Clear previous results
if (results.length > 0) {
results.forEach(result => {
const resultItem = document.createElement('div');
resultItem.classList.add('resultItem');
resultItem.textContent = result;
resultItem.addEventListener('click', function() {
searchInput.value = result;
autocompleteResults.innerHTML = ''; // Clear results when an item is selected
});
autocompleteResults.appendChild(resultItem);
});
}
}
});
这个示例使用了一个简单的模拟数据集(mockData)来演示自动补全功能。在实际应用中,您可能需要根据用户输入向服务器发送异步请求(例如,使用fetch API)以获取匹配项。此外,您还可以根据需要调整样式和功能。
浙公网安备 33010602011771号