简体   繁体   English

使下拉菜单仅在调用函数时可见

[英]Make dropdown visible only when function is called

I am trying make the drop-down visible only when something is entered in the search bar.Otherwise it stays collapsed. 我正在尝试仅在搜索栏中输入内容时显示下拉列表,否则它保持折叠状态。 Following is my code 以下是我的代码

 function mysearchFunction() { var input, upperCase, ul, li, x, i, ax; input = document.getElementById("mysearchInput"); upperCase = input.value.toUpperCase(); ul = document.getElementById("myList"); li = ul.getElementsByTagName("li"); for (i = 0; i < li.length; i++) { x = li[i].getElementsByTagName("a")[0]; if (x.innerHTML.toUpperCase().indexOf(upperCase) === 0) { li[i].style.visibility = "visible"; li[i].style.display = "block"; } else { li[i].style.display = "none"; } } } 
 #myList li a { border: 1px solid #ddd; margin-top: -2px; background-color: #f6f6f6; padding: 10px; text-decoration: none; font-size: 16px; color: black; display: block; visibility: collapse; } 
 <input type="text" id="mysearchInput" onkeyup="mysearchFunction()" placeholder="Search.."> <ul id="myList"> <li><a href="#">America</a></li> <li><a href="#">Africa</a></li> <li><a href="#">Antartica</a></li> <li><a href="#">Asia</a></li> <li><a href="#">Europe</a></li> <li><a href="#">Australia</a></li> </ul> 

In the JS, I am trying to make only content that needs to be displayed as visible. 在JS中,我试图仅使需要显示为可见的内容。 Kindly guide me where I am going wrong. 请指导我哪里出问题了。 No content is currently being displayed. 当前未显示任何内容。 It is staying collapsed. 它保持崩溃。

Just updated the css selector: #myList li , you were hiding all the links. 刚刚更新了CSS选择器: #myList li ,您正在隐藏所有链接。

 function mysearchFunction() { var input, upperCase, ul, li, x, i, ax; input = document.getElementById("mysearchInput"); upperCase = input.value.toUpperCase(); //console.log(upperCase); ul = document.getElementById("myList"); li = ul.getElementsByTagName("li"); for (i = 0; i < li.length; i++) { x = li[i].getElementsByTagName("a")[0]; if (x.innerHTML.toUpperCase().indexOf(upperCase) == 0 && upperCase !== '') { li[i].style.visibility = "visible"; li[i].style.display = "block"; } else { li[i].style.display = "none"; } } } 
 #myList li { border: 1px solid #ddd; margin-top: -2px; background-color: #f6f6f6; padding: 10px; text-decoration: none; font-size: 16px; color: black; display: block; visibility: collapse; } 
 <input type="text" id="mysearchInput" onkeyup="mysearchFunction()" placeholder="Search.."> <ul id="myList"> <li><a href="#">America</a></li> <li><a href="#">Africa</a></li> <li><a href="#">Antartica</a></li> <li><a href="#">Asia</a></li> <li><a href="#">Europe</a></li> <li><a href="#">Australia</a></li> </ul> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM