使用jquery或JS从现有值集中筛选结果
Filter result using jquery or JS from an existing value set
我一直在尝试为页面上返回的数组创建筛选器,并且已经尝试了一段时间,我遇到了与此线程完全相同的问题:使用jQuery使用复选框进行筛选
为什么上面的线程没有帮助:主要原因是m在JS和jQuery中不是很好,所以很难理解(公认答案的)第二种方法,第一种方法有效
到目前为止我已经做了什么:根据这个线程的帮助如何使用复选框动态过滤内容?-jQuery我已经创建了一个过滤器(我之前知道:)),但仍然无法按预期进行过滤在此处乱动
HTML:
<!-- HTML filter chkboxes -->
<input type="checkbox" id="wm" class="a" />WM
<input type="checkbox" id="tv" class="a" />tv
<input type="checkbox" id="ac" class="a" />ac
<input type="checkbox" id="terrace" class="a" />terrace
<!-- Values to be filetered -->
<div class="wm">WM</div>
<div class="tv">TV</div>
<div class="ac">ac</div>
<div class="terrace">terrace</div>
<div class="wm tv">WM TV</div>
<div class="wm tv ac">wm tv ac</div>
<div class="wm terrace">wm terrace</div>
<div class="tv">tv</div>
<div class="tv ac">tv ac</div>
JS:
$(document).ready(function () {
$(".a").change(function () {
$("." + this.id).toggle(this.checked);
}).change();
});
你又出了什么问题???:尽管我已经提到了,但为了快速阅读。。。。。我可以隐藏未检查的筛选器值,但即使它们有一些class
,其筛选器也会像<div class="wm tv">WM TV</div>
一样被检查查看,它们也会消失
我不想让ajax或一些火箭科学jQuery来解决这个问题。。。。考虑到一个noob,寻找一些简单的解决方案时问它:)
解决方案在您发布的第一个链接中:
隐藏所有元素,然后循环通过复选框和选中了one.show()具有关联类别的元素。
$(document).ready(function () {
$(".a").change(function () {
$('div').hide(); //hide all elements
$(':checkbox:checked').each(function() { //loop through checked checkboxes
$("." + this.id).show(); //show
});
});
});
JSFiddle演示
我为您想要切换的每个DIV
标记添加了一个'item'类,以便更容易地选择所有标记,但除此之外,我只保留了HTML
。
JSFIDDLE
$(document).ready(function () {
var a = $('.a'),items=$('.item');
a.change(function () {
var classes = a.filter( ':checked' ).map( function() { return this.id; } );
items.each( function(){
var t = $( this );
for ( var i in classes )
{
if ( t.hasClass( classes[i] ) )
{
t.show();
return;
}
}
t.hide();
});
}).change();
});
a.filter( ':checked' )
将复选框列表过滤为仅选中的复选框,然后.map()
将选中每个复选框,并将给定的函数应用于它,返回一个包含该函数结果的数组-在这种情况下,传递的函数提取id
属性的值,因此您将得到一个选中复选框的id
属性的数组。
items.each()
迭代要显示/隐藏的每个元素,并测试每个元素,看看它是否有一个(以前找到的)类,如果有,则显示它,如果没有,则隐藏它
- 在jstree中,如何将指定的节点集中到大型树上
- 使用AngularJS中的筛选器更新给定的表
- 淘汰搜索/筛选
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- Angular JS Filter-通过3个复选框进行筛选
- Don'不允许将焦点集中在自动完成的选择上
- 使用下拉列表筛选列表(ul>li)
- JQuery DataTable列筛选器-选择下拉筛选器
- Regex,用于从字符串中筛选关键字
- 使用多个条件筛选ng个重复
- 在筛选网格期间,网格负载掩码不起作用
- 从重复的javascript数组结果集中只获取一行
- 接下来选择与筛选器匹配的选项
- 可以't从AJAX请求中筛选数据
- 如何从合并的结果集中提取数组
- 如何从另一个带下划线的数组中筛选带元素的数组
- 动态更改Webkit筛选器值
- 已筛选jQuery集中元素的索引
- 使用jquery或JS从现有值集中筛选结果
- JQuery 非重复后代(筛选出结果集中的所有父项)