javascript - 使用 Javascript 搜索 a 中的所有文本元素
问题描述
我正在尝试创建一个输入字段来搜索无序列表元素中的文本。我有它的工作,但它只搜索 li 中的第一个单词。
我怎样才能让它搜索所有单词?
var input = document.getElementById("input");
input.onkeyup = function () {
var filter = input.value.toUpperCase();
var lis = document.getElementsByTagName("li");
for (var i = 0; i < lis.length; i++) {
var name = lis[i].getElementsByClassName("name")[0].innerHTML;
if (name.toUpperCase().indexOf(filter) == 0)
lis[i].style.display = "list-item";
else lis[i].style.display = "none";
}
};
<input type="text" id="input" placeholder="Search for something..." />
<ul>
<li><h3 class="name">Walking on the moon</h3></li>
<li><h3 class="name">Visiting the zoo</h3></li>
<li><h3 class="name">Freshly baked bread</h3></li>
</ul>
例如,我如何搜索月亮、动物园和面包,并在搜索时显示那些 li 的节目?
解决方案
推荐阅读
- office-js - Outlook 2016 未加载添加图标
- java - Spring Data MongoDB Date 字段不适用于查询或聚合
- apache-kafka - Kafka Source Connect - 列白名单
- angular - Spartacus - 从自定义 CMS 组件中检索数据
- python - 'If-Elif-Else' 函数返回真值不明确 - Pandas Dataframe
- javascript - 使用 Express 后端重定向 React 前端
- django - Django Postgres 迁移:在具有 1 亿行的表中回填列的最快方法
- python - matplotlib legend() 中的文本间距而不将字体更改为等宽
- elasticsearch - 仅返回对象中包含特定值的数组元素
- c++ - 如何检查 (*this) 上的 std::is_base_of<>