【发布时间】:2021-06-16 15:30:09
【问题描述】:
我有一个脚本,目前允许我根据输入框过滤列表。我的问题是它基于包含我输入的短语而不是包含我输入的任何单词的列表进行过滤。
谁能帮我调整一下,让它根据包含我输入的任何单词进行过滤?例如,如果我输入“Primary home”,它应该过滤所有带有 Primary 或 Home 字样的列表项。
目前它搜索“主家庭”,在本例中将显示未找到匹配项。
function myFunction() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("a")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
}
<div>
<input id="myInput" />
<button onclick="myFunction()">Search</button>
<ul id="myUL">
<li><a>MY HOUSE</a></li>
<li><a>PRIMARY CARE HOME</a></li>
</ul>
</div>
【问题讨论】:
-
显然我是靠自己做到了这一点。我只是需要一些帮助,将其从包含更改为包含我输入的任何单词。我不认为我离我需要的地方不远。谢谢你的帮助
标签: javascript html jquery filter