【发布时间】:2020-03-12 00:39:07
【问题描述】:
我正在研究网页上带有滚动列表的搜索功能。这是我的 JS:
function mysearchFunction() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("mysearchInput");
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("a")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
}
else {
li[i].style.display = "none";
}
}
}
和 HTML
<th>
<input type="text" id="mysearchInput" onkeyup="mysearchFunction()" placeholder="Search for location..." title="Location">
<button onclick="mysearchFunction();">Search</button>
<ul id="myUL">
<li><a href="">IT</a><li>
<li><a href="">Dragon's Room</a></li>
<li><a href="">Door 4</a></li>
<li><a href="">Cafeteria </a></li>
<li><a href="">Dragons Den </a></li>
<li><a href="">Dragons Tail </a></li>
<li><a href="">Dragon </a></li>
</ul>
</th>
</html>
搜索功能有效,但它只过滤到第一个值。例如。如果我搜索“龙”,并且滚动列表中有 3 条龙,则会产生“龙、车、猫、龙 1、龙 2”的结果 如果问题太基本,我很抱歉。我还在学习 JS 和 Web 开发,所以我不确定要解决这个问题。
【问题讨论】:
-
你是怎么调用函数的?
-
能否添加您的示例 html 代码?
-
我刚刚添加了html sn-p
-
问题是缺少关闭 li 标签:
<li><a href="">IT</a><li>
标签: javascript html function search filter