所以我試圖創建一個搜索功能,該頁面充滿了鏈接,分成不同的部分,使人們更容易找到他們的特定鏈接通過消除所有與他們所尋找的信息無關的信息來尋找。自定義Javascript搜索,消除與搜索參數不匹配的元素
我希望搜索將與搜索參數不匹配的元素更改爲「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>
部分標記的父項是從腳本外部的某處動態添加的? –
不,他們不是。對不起,我以前沒有看到這個問題。 –