提问者:小点点

我试图在VISUAL STUDIO中使用javascript创建搜索栏,但尚未成功


html文件:我使用了一些div和里面我介绍了一些标题和图像。

在搜索栏中,我只希望当我输入标题时,搜索时屏幕上会出现完整的div。

      <body>
        <div class="input">
            <input type="text" placeholder="Search.." id="searchbar" onkeyup="search_bar()">
            <button type="submit"><i class="fa fa-search"></i></button>
        </div>
        <div class="s10plus" id="divs">
            <h2>Samsung Galaxy S10 Plus</h2>
            <img src="Images/s10plus.png"></img>
            <p id="precios10">Price : $600</p>
       </div>   
       <div class="samsunga10">
           <h2>Samsung Galaxy A10</h2>
           <img src="Images/a10.png"></img>
           <p id="precioa">Price:$600</p>
       </div>  
       <div class="samsunga20">
           <h2>Samsung Galaxy A20</h2>
           <img src="Images/a20.png"></img>
           <p id="precio">Price:$600</p>
       </div>  
      </body>
  

file.js

        function search_bar(){
          var a;
          var search = document.getElementById('searchbar');
          var filter= search.input.toLowerCase();
          var ul = document.getElementsByClassName('s10plus');
          var nodes = ul.getElementsByTagName('h2').length;

          for(i=0; i<nodes; i++){
             a =nodes[i].getElementsByTagName('h2')[0];
             if(a.innerHTML.toLowerCase().indexOf(filter)> -1){
               nodes[i].style.display = "";
               }else{
                 nodes[i].style.display = "none";
         }
            }
              }

共1个答案

匿名用户

您可以在SO中共享一个代码Pen或Codesandbox或在此添加一个剪辑吗?

在您的Js代码中:“li”没有定义,这使得您很难准确地理解您的代码。 此外,设置display:“”不是有效的css属性。 我建议将其设置为显示:“inherit”。

“S10Plus”课程位于:

          var ul = document.getElementsByClassName('s10plus');

将始终获得1个元素,因为在html中只有一个div具有该类。

试着调整一下这些问题,看看你能不能更进一步