首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何隐藏列表项过滤html搜索框

如何隐藏列表项过滤html搜索框
EN

Stack Overflow用户
提问于 2018-08-29 06:24:17
回答 2查看 3.1K关注 0票数 3

如何在过滤器html搜索框中隐藏列表项。

例如,它只在我点击搜索框时才显示项目,然后显示项目列表

否则,隐藏正常代码中的列表项。

阿黛尔

艾格尼丝

比利

鲍勃

卡尔文

克里斯蒂娜

辛迪

康迪

拉库姆

库尔

月亮

中午

如果有人能纠正这一点,请。

代码语言:javascript
复制
* {
      box-sizing: border-box;
    }

    #myInput {
      background-image: url('/css/searchicon.png');
      background-position: 10px 12px;
      background-repeat: no-repeat;
      width: 100%;
      font-size: 16px;
      padding: 12px 20px 12px 40px;
      border: 1px solid #ddd;
      margin-bottom: 12px;
    }

    #myUL {
      list-style-type: none;
      padding: 0;
      margin: 0;
    }

    #myUL li a {
      border: 1px solid #ddd;
      margin-top: -1px; /* Prevent double borders */
      background-color: #f6f6f6;
      padding: 12px;
      text-decoration: none;
      font-size: 18px;
      color: black;
      display: block
    }

    #myUL li a:hover:not(.header) {
      background-color: #eee;
    }
    
    
    

    My Phonebook

    

    
      Adele
      Agnes
      Billy
      Bob
      Calvin
      Christina
      Cindy
    

    
    function myFunction() {
        var input, filter, ul, li, a, i;
        input = document.getElementById("myInput");
        filter = input.value.toUpperCase();
        ul = document.getElementById("myUL");
        li = ul.getElementsByTagName("li");
        for (i = 0; i < li.length; i++) {
            a = li[i].getElementsByTagName("a")[0];
            if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
                li[i].style.display = "";
            } else {
                li[i].style.display = "none";
            }
        }
    }

如果有人能纠正这一点,请。

EN

回答 2

Stack Overflow用户

发布于 2018-08-29 10:32:17

一旦DOM准备就绪,您可以简单地隐藏UL el,然后在输入字段设置为焦点时显示列表。使用jquery尝试下面的代码。

代码语言:javascript
复制
$(function(){
  $('#myUL').hide();
  $('#myInput').on('focus',function(){
    $('#myUL').show();
  });
})
票数 0
EN

Stack Overflow用户

发布于 2021-03-02 02:29:51

如果您引用您的"myUL":为每个列表项-Add一个类

代码语言:javascript
复制
Adele)

然后添加一个CSS组件以在缺省情况下隐藏该列表

.people {显示:无;}

在javascript中:更改此部分:

代码语言:javascript
复制
if (a.innerHTML.toUpperCase().indexOf(filter) > -1)
{
    li[i].style.display = "";
} else {
    li[i].style.display = "none";
    }

至(如果否则反转并过滤==""):

代码语言:javascript
复制
if (!(a.innerHTML.toUpperCase().indexOf(filter) > -1)) && filter == "")
    {
    li[i].style.display = "none";
    } else {
        li[i].style.display = "block";
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52066993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档