Javascript 过滤a<;ul>;子弹消失了。如何让他们留下来?
我使用一个简单的js for循环来过滤用户在输入表单中键入文本时的无序列表。然而,当显示结果时,每一个李的子弹都消失了。我怎样才能让他们留下来?我尝试在脚本中设置样式(列表样式类型),但要么我做得不对,要么它不起作用。请帮忙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");
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;}
类打开/关闭元素。不需要清理,就这样!非常感谢