Javascript 如何排除<;ul>;元素在jquerykeyup实时搜索期间?

Javascript 如何排除<;ul>;元素在jquerykeyup实时搜索期间?,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我不熟悉javascript/jquery,正在尝试找出如何排除/过滤ul id=“#modulelist”下的ul class=“下拉菜单”。我仍然希望能够搜索不在ul class=“下拉菜单”下的li元素。下面是我的PHP和jquery代码片段 <ul class="to_do" id = "modulelist"> <?php foreach($course_titles_not_

我不熟悉javascript/jquery,正在尝试找出如何排除/过滤ul id=“#modulelist”下的ul class=“下拉菜单”。我仍然希望能够搜索不在ul class=“下拉菜单”下的li元素。下面是我的PHP和jquery代码片段

<ul class="to_do" id = "modulelist">
                       <?php
                       foreach($course_titles_not_completed as $course_title){
                           echo '<li class="dropdown">';
                           echo '<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-chevron-down"></i></a>';
                           echo '<ul class="dropdown-menu" role="menu">';

                        if(!empty($prereq_course_titles)){
                        foreach($prereq_course_titles as $prereq_course_title){
                            echo '<li><a href="#">';
                            echo $prereq_course_title;
                            echo '</a></li>';
                        }
                        }
                        else{
                            echo '<li><a href="#">';
                            echo 'No prerequisites';
                            echo '</a></li>';
                        }

                           echo '</ul>';
                           echo '<input type="checkbox" class="flat">';
                           echo $course_title;
                           echo '</li>';
                       }
                       ?>
                    </ul>

<script>
  $(document).ready(function(){
      $('.search').on('keyup',function(){
          var searchTerm = $(this).val().toLowerCase();
          $("#modulelist li").each(function(){
              var lineStr = $(this).text().toLowerCase();
              if(lineStr.indexOf(searchTerm) === -1){
                  $(this).hide();
              }else{
                  $(this).show();
              }
          });
      });
  });
  </script>
$(文档).ready(函数(){ $('.search')。在('keyup',function()上{ var searchTerm=$(this.val().toLowerCase(); $(“#modulelist li”)。每个(函数(){ var lineStr=$(this.text().toLowerCase(); if(lineStr.indexOf(searchTerm)=-1){ $(this.hide(); }否则{ $(this.show(); } }); }); });
我似乎不能不在搜索中包含ul class=“下拉菜单”及其子元素。我不想删除ul和li元素作为解决方案,因为如果搜索栏中没有输入任何内容,我仍然需要它们出现


请一定要帮助我,提前谢谢你

您可以使用
选择器选择
#modulelist

$(“#modulelist>li”)。每个((i,e)=>{
console.log(e.tagName,e.className);
});

    • 1.1
    • 2.1