如何使搜索列表更短?

时间:2019-10-04 07:27:10

标签: javascript html css

t short

如何使搜索结果显示得比4行更短而不是全部显示并延伸到底部?

这是我的代码:

    li = ul.getElementsByTagName("li");
    for (i = 0; i < li.length; i++) {
        a = li[i].getElementsByTagName("a")[0];

css代码:

#myUL li a {
  transform: translate(270px,-1400px); 
  border: 1px solid #ddd;
  margin-top: -1px; /* Prevent double borders */
  background-color: #f6f6f6;
  width: 28%;
  padding: 12px;
  text-decoration: none;
  font-size: 16px;
  color: black;
  display: block;
}

其余代码:

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";
    } 

请帮助我,我现在想解决几个小时:( 预先感谢!

1 个答案:

答案 0 :(得分:2)

尝试一下

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

在有匹配项的块中,

// 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 {

完成4个匹配项后,循环将终止