【问题标题】:Multiple filters of a list via text input with space and comma separators通过带有空格和逗号分隔符的文本输入对列表进行多个过滤器
【发布时间】:2017-04-11 11:24:46
【问题描述】:

我正在使用这个有用的模板: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_filter_list

但希望读取空格(和逗号,如果可能的话),以便允许多个单独的过滤器(可能被读取为 ~AND(逻辑)语句,我不确定),就像在“农业和生物科学研究人员”在此站点上过滤: http://researchers.uq.edu.au/all-science-journals-classification/agricultural-and-biological-sciences

【问题讨论】:

    标签: string list filter


    【解决方案1】:

    这是我一直在寻找的答案(非常感谢我的朋友 JKV!):

    <script>
    function myFunction() {
        var input, filter, ul, li, a, i, allfound;
    
        input = document.getElementById("myInput");
        filter = input.value.toUpperCase().trim().split(/,| /);
        ul = document.getElementById("myUL");
        li = ul.getElementsByTagName("li");
        for (i = 0; i < li.length; i++) 
    {       allfound = true;
            a = li[i].getElementsByTagName("a")[0].innerHTML.toUpperCase();
            for (var w = 0; w < filter.length; w++) {
                if (a.indexOf(filter[w].trim()) == -1) {
                    allfound = false;
                    break;
                }
            }
            li[i].style.display = allfound?"":"none";
        }
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      相关资源
      最近更新 更多