【发布时间】:2020-02-27 14:35:08
【问题描述】:
我不知道为什么我的过滤器功能不适用于切换li 元素。
JavaScript:
$("#searchbox1").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#menulist li").filter(function() {
$(this).toggle($(this).children("span").text().toLowerCase().indexOf(value) > -1)
});
});
HTML:
<ul name="menulist" id="menulist" class="list-group grid-container">
<li class="list-group-item d-flex flex-row justify-content-center align-items-center">
<span>Yeni ürün ekle</span>
<div class="btn-group btn-group-sm ml-auto" role="group">
<a class="btn btn-success" href="/restaurant/additem">
<i class="fas fa-plus"></i>
</a>
</div>
</li>
<li name="bira" class="list-group-item d-flex flex-row justify-content-center align-items-center">
<span>bira</span>
<div class="btn-group btn-group-sm ml-auto" role="group">
<a href="/restaurant/edititem/-10" class="btn btn-success"><span class="fas fa-edit"></span></a>
<a href="/restaurant/delete/-10" class="btn btn-danger"><span class="fas fa-trash-alt"></span></a>
</div>
</li>
<li name="patates kızartması" class="list-group-item d-flex flex-row justify-content-center align-items-center">
<span>patates kızartması</span>
<div class="btn-group btn-group-sm ml-auto" role="group">
<a href="/restaurant/edititem/-11" class="btn btn-success"><span class="fas fa-edit"></span></a>
<a href="/restaurant/delete/-11" class="btn btn-danger"><span class="fas fa-trash-alt"></span></a>
</div>
</li>
</ul>
想要的效果:
我只想要一个简单的搜索框效果,但列表项不会去任何地方。当我玩这样的代码时:
$("#menulist span").filter(...)
我可以看到所有span 元素根据搜索值切换,但我想隐藏li 元素,与搜索值不匹配。我错过了什么,但是什么?
【问题讨论】:
-
使用
$(this).parent().toggle(...);而不是$(this).toggle(...);
标签: javascript jquery html css list