Javascript 如何筛选同时包含链接和纯文本的列表?
我有一个根据输入过滤列表的函数。它适用于城市的Javascript 如何筛选同时包含链接和纯文本的列表?,javascript,html,html-lists,html-entities,Javascript,Html,Html Lists,Html Entities,我有一个根据输入过滤列表的函数。它适用于城市的 ,乡村 ,城市 ,城市 ,乡村 ,城市 ,乡村 ,乡村 在同时键入链接和纯文本时,如何使筛选函数工作?(例如,当我键入圣卡洛斯市或圣卡洛斯市时,它在筛选结果中仅显示,城市 更新: 使用innerText的问题是过滤器无法解析/识别我需要包含在某些列表中的html实体: <li><a href='#.html'>Santa‑Clara</a>, city</li> <li&
,乡村
,城市
,城市
,乡村
,城市
,乡村
,乡村
在同时键入链接和纯文本时,如何使筛选函数工作?(例如,当我键入圣卡洛斯市
或圣卡洛斯市
时,它在筛选结果中仅显示,城市
更新:
使用innerText
的问题是过滤器无法解析/识别我需要包含在某些列表中的html实体:
<li><a href='#.html'>Santa‑Clara</a>, city</li>
<li><a href='#.html'>La Libertad</a>, village</li>
<li><a href='#.html'>Santo Niño</a>, village</li>
,城市
,乡村
,乡村
例如,键入
la libertad
不会显示la libertad
,因为它使用HTML实体 ;
(不间断空格)而不是“普通空格”。函数如何还能识别此类HTML实体?使用innerText
来避免HTML标记
函数过滤器列表(){
var输入、滤波器、ul、li、a、i;
输入=document.getElementById(“listSearch”);
filter=input.value.toLowerCase();
ul=document.getElementById(“列表1”);
li=ul.getElementsByTagName(“li”);
对于(i=0;i-1){
李[i].style.display=“”;
}否则{
li[i].style.display=“无”;
}
}
}
var listFilter=document.getElementById(“listSearch”);
如果(列表过滤器){
listFilter.oninput=filterList;
}
测试页
过滤器:
- ,城市
- ,乡村
- ,城市
- ,城市
- ,乡村
谢谢,这很有效,但我还需要html实体,如不间断连字符、不间断空格和一些列表条目中的特殊字符。请查看更新的演示。