Javascript 过滤a<;ul>;子弹消失了。如何让他们留下来?

Javascript 过滤a<;ul>;子弹消失了。如何让他们留下来?,javascript,html,css,Javascript,Html,Css,我使用一个简单的js for循环来过滤用户在输入表单中键入文本时的无序列表。然而,当显示结果时,每一个李的子弹都消失了。我怎样才能让他们留下来?我尝试在脚本中设置样式(列表样式类型),但要么我做得不对,要么它不起作用。请帮忙 function searchHospital() { var search, filter, ul, li, a, i, txtValue; search = document.getElementById("searchKey");

我使用一个简单的js for循环来过滤用户在输入表单中键入文本时的无序列表。然而,当显示结果时,每一个李的子弹都消失了。我怎样才能让他们留下来?我尝试在脚本中设置样式(列表样式类型),但要么我做得不对,要么它不起作用。请帮忙

        function searchHospital() {
var search, filter, ul, li, a, i, txtValue;
search = document.getElementById("searchKey");
filter = search.value.toUpperCase();
ul = document.getElementById("hospitals");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    txtValue = a.textContent;
    if (txtValue.toUpperCase().indexOf(filter) > -1) {
        li[i].style.display = "block";
        
        
    } else {
        li[i].style.display = "none";
    }
}
功能搜索医院(){
var搜索、筛选、ul、li、a、i、txtValue;
search=document.getElementById(“searchKey”);
filter=search.value.toUpperCase();
ul=document.getElementById(“医院”);
li=ul.getElementsByTagName(“li”);
对于(i=0;i-1){
li[i].style.display=“block”;
}否则{
li[i].style.display=“无”;
}
}
}


谢谢大家!

列表项的计算
显示
列表项
,而不是

因此,您需要设置:

li[i].style.display = "list-item";

试试
li[i].style.display='unset'
'default'
block
的显示不是
li
元素的默认显示。您需要在
  • 标记中放置另一个元素,并将您的样式应用于该元素。我建议使用
    visibility:hidden
    而不是
    display:none
    。另一种方法是使用
    .hide{display:none;}
    类打开/关闭元素。不需要清理,就这样!非常感谢