问题描述
我已经参加了一个多星期,但我仍在刷新ES6 JavaScript。
我正在使用Bootstrap 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>
Bootstrap Select正在修改选择输入,并使用lis创建一个下拉列表ul:
<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>
需要过滤的帖子:
<div id="posts" class="row mb-2">
{% for post in seq %}
<div class="col-lg-4 post">
{# <div class="{% for category in post.Meta('categories') %}{{ category.category|url_encode }} {% endfor %}"> #}
<div data-filter="{% for category in post.Meta('categories') %}{{ category.category }},{% endfor %}">
<div class="content-header-blue round-top-right">
<h5 class="m-0 pb-1">{{ post.title }}</h5>
<p class="m-0 orange">{{ post.subtitle }}</p>
</div>
<div class="content-body sp round-bottom-left shadow mb-4 p-3">
<img class="sp-logo" src="{{ Image(post.logo).src }}" alt="{{ post.title }} logo" width="100%">
<div class="d-flex justify-content-center mt-3">
<a class="btn btn-primary waves-effect waves-light" href="{{ post.link }}">View Profile <i class="fas fa-chevron-right pl-1"></i></a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
到目前为止,我有JS:
// 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';
}
}
}
如果有人可以提供一些我可以理解的见解或一些代码示例,我将不胜感激。
我目前正在学习ES6 JavaScript课程,我仍在学习。
我的问题是如何过滤多选下拉列表中单击/选定的元素并显示选定的元素。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)