【发布时间】:2017-10-03 05:50:04
【问题描述】:
所以我试图在一个页面上创建一个搜索功能,该页面上的链接被分成不同的部分,通过消除所有与内容无关的信息,使人们更容易找到他们正在寻找的特定链接他们正在寻找。
我希望搜索将与搜索参数不匹配的元素更改为“display:none;”但是我似乎无法弄清楚如何制作一个列表项为“display:none;”的部分也“显示:无;”如果该部分不包含搜索参数,则该部分将不再出现。
这是我的代码:
<input type="text" id="myInput" onkeyup="mySearch()"
placeholder="Search this page!">
<div id="content">
<section class="parent">
<h2>heading two</h2>
<ul class="child">
<li><a href="#">list item 1</a></li>
<li><a href="#">list item 2</a></li>
</ul>
</section>
<section class="parent">
<h2>heading two</h2>
<ul class="child">
<li><a href="#">list item 3</a></li>
<li><a href="#">list item 4</a></li>
</ul>
</section>
</div>
<script>
var input, filter, ul, li, a, i, parentDivs, children;
input = document.getElementById('myInput');
filter = input.value.toUpperCase();
ul = document.getElementById("content");
li = ul.getElementsByTagName('li');
sect = ul.getElementsByTagName('section');
parentDivs = document.getElementsByClassName("parent");
children = document.getElementsByClassName("child");
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("a")[0];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}
</script>
【问题讨论】:
-
标记为父级的部分是否是从脚本外部动态添加的?
-
不,他们不是。抱歉,我之前没有看到这个问题。
标签: javascript function search