Javascript 如何缩短搜索列表?

Javascript 如何缩短搜索列表?,javascript,html,css,Javascript,Html,Css,如何使搜索结果显示得像4行一样短,而不是全部,并延伸到底部 这是我的密码: li = ul.getElementsByTagName("li"); for (i = 0; i < li.length; i++) { a = li[i].getElementsByTagName("a")[0]; 代码的其余部分: var UL = document.getElementById("myUL"); // hilde the list by default UL

如何使搜索结果显示得像4行一样短,而不是全部,并延伸到底部

这是我的密码:

    li = ul.getElementsByTagName("li");
    for (i = 0; i < li.length; i++) {
        a = li[i].getElementsByTagName("a")[0];
代码的其余部分:

var UL = document.getElementById("myUL");
// hilde the list by default
UL.style.display = "none";
var searchBox = document.getElementById("myInput");

// show the list when the input receive focus
searchBox.addEventListener("focus",  function(){
    // UL.style.display = "block";
});

// hide the list when the input receive focus
searchBox.addEventListener("blur", function(){

});


function myFunction() {
    var input, filter, ul, li, a, i;
    input = document.getElementById("myInput");
    ul = document.getElementById("myUL");
    filter = input.value.toUpperCase();
    // if the input is empty hide the list
    if(filter.trim().length < 1) {
        ul.style.display = "none";
        return false;
    } else {
        ul.style.display = "block";
    }
    li = ul.getElementsByTagName("li");   
    for (i = 0; i < li.length; i++) {
        a = li[i].getElementsByTagName("a")[0];

        // This is when you want to find words that contain the search string
     if (a.innerHTML.toUpperCase().indexOf(filter) > -1) { 
        li[i].style.display = "";
     } else {
        li[i].style.display = "none";
    } 

var UL=document.getElementById(“myUL”);
//默认情况下,隐藏列表
UL.style.display=“无”;
var searchBox=document.getElementById(“myInput”);
//输入接收焦点时显示列表
searchBox.addEventListener(“焦点”,函数(){
//UL.style.display=“块”;
});
//当输入接收焦点时隐藏列表
searchBox.addEventListener(“blur”,function()){
});
函数myFunction(){
var输入、滤波器、ul、li、a、i;
输入=document.getElementById(“myInput”);
ul=document.getElementById(“myUL”);
filter=input.value.toUpperCase();
//如果输入为空,则隐藏列表
如果(过滤器修剪().长度<1){
ul.style.display=“无”;
返回false;
}否则{
ul.style.display=“块”;
}
li=ul.getElementsByTagName(“li”);
对于(i=0;i-1){
李[i].style.display=“”;
}否则{
li[i].style.display=“无”;
} 
请帮帮我,我现在要花几个小时来解决这个问题:( 提前谢谢!

试试这个

var limit = 4;    
for (i = 0, j = 0; i < li.length && j < limit; i++) {
当您进行4次匹配时,循环将终止

var limit = 4;    
for (i = 0, j = 0; i < li.length && j < limit; i++) {

当您进行了4次匹配时,循环将终止。

您从代码内的列表中获取搜索结果的原因是什么:
  • 您从代码内的列表中获取搜索结果的原因是什么:
  • 这样的原因是:
  • 虽然不起作用,但我已经用css代码进行了更新,这可能是导致his?@Dr.Joben您能发布与填充搜索结果相关的部分代码吗?问题可能在其他地方。我可能找到了问题。`ul.style.display=“block”`将显示整个列表。我如何重新编码以仅显示4个?很抱歉,打扰您,但我将'li[I].style.display=“”放在哪里;j++;'我的代码在哪一部分?我已经更新了上面的完整脚本代码。如果打扰您,我很抱歉,但非常感谢您的帮助和时间:)虽然不起作用,但我已经用css代码进行了更新,这可能是导致此问题的原因吗?@Dr.Joben您可以发布与填充搜索结果相关的代码部分吗?问题可能在其他地方。我可能发现了问题。`ul.style.display=“block”;`这将显示整个列表。我如何将其重新编码为仅显示4个?很抱歉打扰您,但是我应该将'li[I].style.display=“”;j++;'放在我代码的哪个部分?我已经更新了上面的完整脚本代码。如果打扰您,我很抱歉,但非常感谢您的帮助和时间:)
    // This is when you want to find words that contain the search string
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
        li[i].style.display = "";
        j++;
    } else {