如何使网站上的搜索栏搜索产品并显示搜索内容

时间:2020-08-15 20:37:16

标签: javascript python html css

当您输入字母时,我想知道如何使我的博客网站上的搜索栏像亚马逊一样工作,或者任何网站都有搜索栏,它会向您显示与您搜索的字母相关的内容以及我所指的含义就像博客或产品一样

1 个答案:

答案 0 :(得分:0)

在这里,您使用香草JavaScript。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>


#myInput {
  box-sizing: border-box;
  background-image: url('searchicon.png');
  background-position: 14px 12px;
  background-repeat: no-repeat;
  font-size: 16px;
  padding: 14px 20px 12px 45px;
  border: none;
  border-bottom: 1px solid #ddd;
}

#myInput:focus {outline: 3px solid #ddd;}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {

  position: absolute;
  background-color: #f6f6f6;
  min-width: 230px;
  overflow: auto;
  border: 1px solid #ddd;
  z-index: 1;
}

.dropdown-content li, h4 {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown li:hover {background-color: #ddd;}

.show {display: block;}
</style>
</head>
<body>

<h2>Search/Filter Dropdown</h2>


<div class="dropdown">

  <div id="myDropdown" class="dropdown-content">
    <input type="text" placeholder="Search.." id="myInput" onkeyup="filterFunction()">
    
    <h4>My List</h4>
    <ul>
    <li id="product1">Car</li>
    <li id="product2">Bicyle</li>
    <li id="product3">Motocycle</li>
    <li id="product4">Boat</li>
    <li id="product5">Lawn Mower</li>
    <li id="product6">Trailer</li>
    <li id="product7">Power Saw</li>
    </ul>
  </div>
</div>

<script>
/* Javascript function to search the list*/
function filterFunction() {
  let input, filter, ul, li, a, i;
  input = document.getElementById("myInput");
  /* change everything to lower or upper case in order 
  to make the search case insensitive */
  filter = input.value.toUpperCase(); 
  div = document.getElementById("myDropdown");
  li = div.getElementsByTagName("li");
  for (i = 0; i < li.length; i++) {
    txtValue = li[i].textContent || li[i].innerText;
    if (txtValue.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>

</body>
</html>