gpt4 book ai didi

javascript - (vanilla) Js Search 中的 "Cant Find"消息

转载 作者:行者123 更新时间:2023-11-27 23:04:28 25 4
gpt4 key购买 nike

我有下面的代码。它搜索一个具有值的视觉上隐藏的 div一切正常,但我需要添加一个在搜索未找到任何内容时显示的元素。我什至不知道如何去做。预先感谢您的帮助。

如果有人需要更多代码,请编写 CSS/HTML 消息。

function search() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("search-input");
filter = input.value.toUpperCase();
ul = document.getElementById("search");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("div")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}

最佳答案

计算 for 循环中的结果数。如果结果数量 === '0',则显示另一个显示文本“未找到结果”的元素。这是一个可能看起来像的示例:

function search() {
var input, filter, ul, li, a, i, txtValue, resultsCount = 0;
input = document.getElementById("search-input");
filter = input.value.toUpperCase();
ul = document.getElementById("search");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("div")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
resultsCount++;
} else {
li[i].style.display = "none";
}
}
var notFound = document.getElementById('not-found')
if(resultsCount === 0) {
notFound.innerHTML = filter + ' not found';
notFound.style.display = "";
} else {
notFound.style.display = "none";
}
}
<input type="text" id="search-input" onkeyup="search()" />
<ul id="search">
<li><div>foo</div></li>
<li><div>bar</div></li>
<li><div>baz</div></li>
</ul>

<div id="not-found"></div>

关于javascript - (vanilla) Js Search 中的 "Cant Find"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58805900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com