我对 javascript 完全陌生,所以请原谅我的新手。
我希望根据文本框中输入的内容过滤三个不同的列表。我的函数仅对第一个列表进行排序,并且仅当我“按 Id 获取元素”而不是类时进行排序。
我的想法是按类获取元素,从而过滤所有三个列表,但它并不完全那样工作。我能做些什么?
JavaScript:
<script>
function filterList() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById('searchCombo');
filter = input.value.toUpperCase();
ul = document.getElementsByClassName("drugList");
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";
}
}
}
</script>
HTML 列表:
<input type="text" id="searchCombo" onkeyup="filterList()" placeholder="Search for names..">
<ul ID="list1" class="drugList">
<li><a href="#">List 1 element 1</a></li>
<li><a href="#">List 1 element 2</a></li>
<li><a href="#">List 1 element 3</a></li>
</ul>
<ul ID="list2" class="drugList">
<li><a href="#">List 2 element 1</a></li>
<li><a href="#">List 2 element 2</a></li>
<li><a href="#">List 2 element 3</a></li>
</ul>
<ul ID="list3" class="drugList">
<li><a href="#">List 3 element 1</a></li>
<li><a href="#">List 3 element 2</a></li>
<li><a href="#">List 3 element 3</a></li>
</ul>
MM们
弑天下
相关分类