【发布时间】:2018-06-06 20:36:43
【问题描述】:
我有一个搜索栏和一个无序列表。
<input onkeyup="Cautare()" type='text' id='userInput' placeholder='Cautare...'>
<button class="Buton" id='Trimitere' onclick="TrimitereWikipedia()">Cautare Wikipedia</button>
<br />
<ul id="myUL">
<li><a href="Istoria_Opticii.html">ISTORIA OPTICII</a></li>
<li><a href="Principiile_Opticii_Geometrice.html">PRINCIPIILE OPTICII GEOMETRICE</a></li>
</ul>
使用这个 JS 函数(Cautare()):
function Cautare() {
var input, filter, ul, li, a, i;
input = document.getElementById("userInput");
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];
if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}}
所以这个函数基本上从<li> 中搜索<a> 标签内的内容
我想通过这样做让这个脚本有点搜索内容的内容:
添加
<p style="display: none">content</p>:因此“内容”一词将是您看不到的另一个“关键字”;在函数中声明
p变量-
p = li[i].getElementsByTagName("p")[0];,在a = li[i].getElementsByTagName("a")[0];下 - 在if语句中添加:
|| p.innerHTML.toUpperCase().indexOf(filter) > -1
因此,当我在搜索栏中输入“内容”一词时,应该会出现第一个列表项,但没有发生任何事情,实际上所有这些都破坏了功能。
如何编辑函数以便完成我想做的事情?我对 JavaScript 不是很有经验。
【问题讨论】:
标签: javascript html css search