我有以下功能可以过滤LI列表
function searchCourse() {
var input, filter, ul, li, a, i;
input = document.getElementById("courseFilter");
filter = input.value.toUpperCase();
ul = document.getElementById("gallery");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("h3")[0];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
li[i].classList.add("active");
} else {
li[i].classList.remove("active");
}
}
}
我现在要做的是在用户在框中键入内容时,如果没有一个LI项处于活动状态,则应该删除以下div的隐藏类:
<div class="calendar-occasion__no-results hidden" id="no-results">No courses found. We are always adding new events to our calendar.<br /> Please register your interest by <a href="@Model.ContactUs.LinkUrl">getting in touch with us</a></div>
每次用户在过滤器框中键入脚本时,该脚本都应处于活动状态;如果激活的类超过1个,则LI会将隐藏的类添加回div。
正确的语法是什么?
答案 0 :(得分:0)
使用onkeyup
元素的input
事件,然后在函数内部仅检查活动li
项的数量:
<script>
function checkActiveItems() {
alert("do the checking");
}
</script>
<input type="text" onkeyup="checkActiveItems()" />