【发布时间】:2011-10-07 20:15:01
【问题描述】:
我有一个显示自定义帖子的存档页面,每个帖子都有一个div,在 div 中显示帖子的分类术语(自定义类别“jobtype”),如下所示:
<div class="hidden tags category1 category2 cat3 etc..."></div>
然后我有一个带有复选框的表单,每个复选框的值对应于帖子可能具有的一些可能类别:
<input class="filterbox" type="checkbox" name="interest" value="academia" />Academia<br />
<input class="filterbox" type="checkbox" name="interest" value="adminassistant" />Admin/Assistant<br />
<input class="filterbox" type="checkbox" name="interest" value="communicationsmarketing" />Communications/Marketing<br />
<input class="filterbox" type="checkbox" name="interest" value="development" />Development<br />
我想使用 jQuery 根据选中的复选框过滤(阅读:$('.postclass').hide();)当前帖子。目前我正在使用以下 jQuery 代码:
var $checkboxes;
function storecat() {
var tags = $checkboxes.map(function() {
if(this.checked) return this.value;
}).get().join(' ');
$('#selected-interests').html(tags);
}
$(function() {
$checkboxes = $('.filterbox:checkbox').change(storecat);
});
$('#filtersubmit').click(){
}
这是一个关于分类页面上帖子条目的愚蠢示例:
<div class="post_entry">
<div class="post-thumb"></div>
<h4 class="post-title"><a href="#" title="Title">Title</a></h4>
<div class="post-meta">
<p class="post_meta_organization">Job Organization</p>
<p class="post_meta_location">City, State</p>
<p class="post_meta_url">Website: <a href="#">Click Here</a></p>
</div>
<div class="hidden tags early-career internship other web-developmentit"></div>
<p class="post_excerpt">Post Content Here</p>
</div>
我想我需要做一个$('.post_entry').each(); 来检查var tags,但我完全不确定从哪里开始。我想我需要的是创建一个标签数组(现在他们正在创建一个列表?),并在 <div class="hidden tags..."></div>
我希望它隐藏没有任何相关标签的帖子,但只显示选择了所有标签的帖子。如果有人可以帮助我的.each() 功能,我们将不胜感激。
如果您想查看更多布局,请转到http://www.cirkut.net/wp/libertyguide/jobs
如果需要更多信息,请询问。
子问题:
如果未选择任何输入,如何显示所有帖子?我没有将此作为新问题发布,因为我发现这与此问题高度相关。
如果我有提交按钮<input id="filter_submit" value="FIND" />
我将 jQuery 更改为
$('#filter_submit').click( function() {
$('.tags').parent().hide();
$('input:checked').each( function(i) {
$('div.' + $(this).val()).parent().show();
});
当我点击提交按钮时,所有帖子都隐藏了。有什么帮助吗?
【问题讨论】:
-
嗨乔希,只是为了让我更好地理解子问题,在jsfiddle.net/3qwty/3,当页面加载时,所有帖子都会显示。当您选择输入,然后全部取消选择时,所有帖子都会再次显示。使它适用于子问题应该有什么不同?
-
我用更多信息更新了我的子问题。我将您的小提琴更改为jsfiddle.net/3qwty/6,因为我只想显示具有选定值的帖子。现在,当第一次运行后所有内容都未选中时,它们都消失了。
-
嗨,乔希,我在下面编辑了我的答案,以便在未选择任何输入时显示所有帖子。
标签: jquery filter filtering taxonomy