Javascript 如何根据输入文本搜索显示所有嵌套列表元素?
我正在创建一个web应用程序,当用户搜索某个球员(并且找到了比赛)时,该应用程序将返回NBA球员的姓名和球衣号码 我可以返回已搜索的姓名,但无法返回球衣号码 我已尝试设置Javascript 如何根据输入文本搜索显示所有嵌套列表元素?,javascript,html,Javascript,Html,我正在创建一个web应用程序,当用户搜索某个球员(并且找到了比赛)时,该应用程序将返回NBA球员的姓名和球衣号码 我可以返回已搜索的姓名,但无法返回球衣号码 我已尝试设置style.display=true,该设置适用于名称节点,但无法在jersey节点上使用 下面是我的HTML是如何通过JSON的DOM操作创建的: 函数searchPlayer(){ 让输入,过滤,ul,li,playerName,i; 输入=document.getElementById(“搜索栏”); filter=in
style.display=true
,该设置适用于名称节点,但无法在jersey节点上使用
下面是我的HTML是如何通过JSON的DOM操作创建的:
函数searchPlayer(){
让输入,过滤,ul,li,playerName,i;
输入=document.getElementById(“搜索栏”);
filter=input.value.toUpperCase();
li=document.getElementById(“玩家列表”).getElementsByTagName(“li”);
Object.keys(li).forEach(函数名){
playerName=li[name].innerHTML;
if(playerName.toUpperCase().indexOf(过滤器)>-1){
li[name].style.display=true;
}否则{
li[name].style.display=“无”;
}
})
}
-
Alex Abrines
球衣:8件
-
昆西酒店
球衣:13
搜索
如果要在使用显示:无
隐藏列表项后显示列表项,则需要使用列表项
而不是真
,并使用.closest(.player”)
切换父项的显示:
if (playerName.toUpperCase().indexOf(filter) > -1) {
li[name].closest(".player").display = 'block';
} else {
li[name].closest(".player").display = "none";
}
注意1:您需要验证您的结构li
不能是另一个li
的父级,请检查我更新的HTML格式
注意2:您还需要用公共类替换重复的id
,因为标识符在同一文档中必须是唯一的
函数searchPlayer(){
让输入,过滤,ul,li,playerName,i;
输入=document.getElementById(“搜索栏”);
filter=input.value.toUpperCase();
li=document.queryselectoral(#player list.full name”);
Object.keys(li).forEach(函数名){
playerName=li[name].innerHTML;
if(playerName.toUpperCase().indexOf(过滤器)>-1){
li[name]。最近的(“.player”).style.display='list item';
}否则{
li[name]。最近的(“.player”).style.display=“无”;
}
})
}
-
Alex Abrines
球衣:8件
昆西酒店
球衣:13件
天哪,你是英雄。非常感谢-这真是一种享受!很高兴能帮上忙,先生。