带有多选下拉菜单的JavaScript过滤器元素

带有多选下拉菜单的JavaScript过滤器元素,javascript,bootstrap-select,Javascript,Bootstrap Select,我已经做了一个多星期了,我仍然在刷新我的ES6 JavaScript 我将引导选择用于multi-Select下拉列表 以下是多选和搜索输入标记: <div class="col-lg-4"> <form> <div class="form-group"> <h5>Products & Services</h5> <select id="

我已经做了一个多星期了,我仍然在刷新我的ES6 JavaScript

我将引导选择用于multi-Select下拉列表

以下是多选和搜索输入标记:

<div class="col-lg-4">
  <form>
    <div class="form-group">
      <h5>Products & Services</h5>
      <select id="filter-select" class="form-control filter selectpicker" multiple>
       {% for item in filters %}
         <option data-filter="{{ item.data_filter }}">{{ item.title }}</option>
       {% endfor %}
      </select>
    </div>
    <div class="form-group">
      <input type="text" class="form-control" id="search-filter" placeholder="Search...">
    </div>
  </form>
</div>

产品与服务
{筛选器%中的项的百分比}
{{item.title}
{%endfor%}
引导选择正在修改选择输入,并使用lis创建下拉列表:

<li>
  <a role="option" class="dropdown-item" id="bs-select-1-6" tabindex="0" aria-selected="false" aria-setsize="10" aria-posinset="7">
    <span class=" bs-ok-default check-mark"></span>
    <span class="text">Information Technology</span>
  </a>
</li>
  • {%endfor%}
  • 到目前为止,我已经:

    // Filtering
    
    $('#filter-select').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
      let dropdown = document.getElementById('filter-select');
    
      let items = document.getElementById('posts');
    
      let item = items.querySelectorAll('div.post');
    
      for (let i = 0; i < item.length; i++) {
        let filterItem = item[0];
        console.log(filterItem);
        if (filterItem.innerHTML.toUpperCase().indexOf(options) > -1) {
          item[i].style.display = '';
        } else {
          item[i].style.display = 'none';
        }
      }
    });
    
    // Filter by searchable input field
    
    let filterInput = document.getElementById('search-filter');
    
    filterInput.addEventListener('keyup', filterPosts);
    
    function filterPosts(){
      let filterValue = document.getElementById('search-filter').value.toUpperCase();
    
      let posts = document.getElementById('posts');
    
      let post = posts.querySelectorAll('div.post');
    
      for (let i = 0; i < post.length; i++) {
        let filterItem = post[i].getElementsByTagName('h5')[0];
        if (filterItem.innerHTML.toUpperCase().indexOf(filterValue) > -1) {
          post[i].style.display = '';
        } else {
          post[i].style.display = 'none';
        }
      }
    }
    
    //过滤
    $(“#筛选选择”).on('changed.bs.select',函数(e,clickedIndex,isSelected,previousValue){
    let dropdown=document.getElementById('filter-select');
    让items=document.getElementById('posts');
    让item=items.querySelectorAll('div.post');
    for(设i=0;i-1){
    项[i]。style.display='';
    }否则{
    项[i].style.display='none';
    }
    }
    });
    //按可搜索输入字段筛选
    让filterInput=document.getElementById('search-filter');
    filterInput.addEventListener('keyup',filterPosts);
    函数filterPosts(){
    让filterValue=document.getElementById('search-filter').value.toUpperCase();
    让posts=document.getElementById('posts');
    让post=posts.queryselectoral('div.post');
    for(设i=0;i-1){
    post[i].style.display='';
    }否则{
    post[i].style.display='none';
    }
    }
    }
    
    如果有人能提供一些见解或代码示例,我会非常感谢

    我目前正在学习ES6 JavaScript课程,我还在学习


    我的问题是如何过滤在“多选”下拉列表中单击/选择的元素,并显示选定的元素


    谢谢。

    您的问题是什么?我的问题是如何过滤在“多选”下拉列表中单击/选择的元素,并显示所选的元素。
    // Filtering
    
    $('#filter-select').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
      let dropdown = document.getElementById('filter-select');
    
      let items = document.getElementById('posts');
    
      let item = items.querySelectorAll('div.post');
    
      for (let i = 0; i < item.length; i++) {
        let filterItem = item[0];
        console.log(filterItem);
        if (filterItem.innerHTML.toUpperCase().indexOf(options) > -1) {
          item[i].style.display = '';
        } else {
          item[i].style.display = 'none';
        }
      }
    });
    
    // Filter by searchable input field
    
    let filterInput = document.getElementById('search-filter');
    
    filterInput.addEventListener('keyup', filterPosts);
    
    function filterPosts(){
      let filterValue = document.getElementById('search-filter').value.toUpperCase();
    
      let posts = document.getElementById('posts');
    
      let post = posts.querySelectorAll('div.post');
    
      for (let i = 0; i < post.length; i++) {
        let filterItem = post[i].getElementsByTagName('h5')[0];
        if (filterItem.innerHTML.toUpperCase().indexOf(filterValue) > -1) {
          post[i].style.display = '';
        } else {
          post[i].style.display = 'none';
        }
      }
    }