【发布时间】:2018-12-26 08:37:36
【问题描述】:
我正在尝试通过选择多个过滤器来过滤用户。
问题是,我正在使用第三方软件,它在多个表格中显示我的用户列表。所以每个用户都有唯一的 ID,但每个用户都在几个表中,所以我试图过滤它们。
因此,例如,如果您选中颜色 Blue 和项目 Bucket,它应该只显示同时拥有这两个类的用户。
我正在尝试使用 $(this).val() 来获取复选框值的名称并将其作为每个用户中的类进行搜索,所以如果这两个类(或更多)匹配每个用户,它应该在下面的showUsers结果中显示他们。
我已经设置了示例,但我在此尝试失败: JSFiddle
HTML
<!-- FILTERS -->
<h3>Filter items</h3>
<div class="filter-list-one">
<input type="checkbox" value="Wood">Wood<br>
<input type="checkbox" value="Bucket">Bucket<br>
<input type="checkbox" value="Hammer">Hammer<br>
</div>
<h3>Filter colors</h3>
<div class="filter-list-two">
<input type="checkbox" value="Red">Red<br>
<input type="checkbox" value="Purple">Purple<br>
<input type="checkbox" value="Blue">Blue<br>
</div>
<!-- FILTERS END -->
<!-- SEARCHING THROUGH -->
<h3>Results</h3>
<div class="objects">
<p id="user1" class="user">
<span>wood</span>
<span class="bucket">bucket</span>
<span>hammer</span>
</p>
<p id="user2" class="user">
<span>wood</span>
<span class="bucket">bucket</span>
<span class="bucket">hammer</span>
</p>
<p id="user3" class="user">
<span class="bucket"n>wood</span>
<span class="bucket">bucket</span>
<span>hammer</span>
</p>
</div>
<div class="colors">
<p id="user1">
<span>red</span>
<span class="purple">purple</span>
<span>blue</span>
</p>
<p id="user2">
<span class="purple">red</span>
<span>purple</span>
<span>blue</span>
</p>
<p id="user3">
<span>red</span>
<span class="purple">purple</span>
<span class="purple">blue</span>
</p>
</div>
<div class="showUsers">
<div id="user1" class="filtered">I'm here and I have those things</div>
<div id="user2" class="filtered">I'm here and I have those things</div>
<div id="user3" class="filtered">I'm here and I have those things</div>
</div>
<!-- SEARCHING THROUGH NED -->
CSS
div {
margin-bottom: 20px;
}
h3 {
margin: 5px 0;
}
p {
margin: 0 5px;
}
.colors p,
.user,
.filtered {
display: none;
}
jQuery
$(".filter-list-one :checkbox, .filter-list-two :checkbox").change(function() {
if ( ($(".items" + $(this).val())[0]) && ($(".colors" + $(this).val())[0]) ) {
var showUser = $(this).closest(".user").attr("id");
$(".showUsers").find("#" + horaInicial).css("display, block");
}
});
【问题讨论】:
-
if 语句是什么意思?你对这个
($(".items" + $(this).val())[0])有什么期待? -
我正在尝试获取选中项的值并将其作为颜色和对象容器中的类进行搜索。
-
但是没有以
.items开头的课程?!