当数组类型为JSON时,可以通过以下步骤实现自定义搜索栏:
<input>
标签或者其他适合的元素。addEventListener
函数绑定input
事件。value
属性获取。filter
函数来进行搜索。filter
函数接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行判断,返回值为true
表示该元素符合搜索条件,返回值为false
表示不符合搜索条件。indexOf
函数来判断字符串是否包含搜索关键字。以下是一个示例代码:
<input type="text" id="searchInput" placeholder="请输入搜索关键字">
<ul id="searchResults"></ul>
<script>
const data = [
{ name: "Apple", category: "Fruit" },
{ name: "Banana", category: "Fruit" },
{ name: "Carrot", category: "Vegetable" },
{ name: "Tomato", category: "Vegetable" }
];
const searchInput = document.getElementById("searchInput");
const searchResults = document.getElementById("searchResults");
searchInput.addEventListener("input", function() {
const keyword = searchInput.value.toLowerCase();
const results = data.filter(function(item) {
return item.name.toLowerCase().indexOf(keyword) !== -1;
});
renderResults(results);
});
function renderResults(results) {
searchResults.innerHTML = "";
results.forEach(function(item) {
const li = document.createElement("li");
li.textContent = item.name;
searchResults.appendChild(li);
});
}
</script>
这个示例代码实现了一个简单的搜索栏,可以根据输入的关键字搜索数组中的元素,并将搜索结果展示在一个无序列表中。你可以根据实际需求进行修改和扩展。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云