根据以下评论中的要求更新(最后一个坏了,这不是):
基本上id
对每个作业使用相同的方法可以让我们跟踪作业,并且我们可以为检查作业类型分配多个类。可能有多种方法可以做到这一点,并且可能更多地取决于您实际显示它们的方式,但这有效。
http://jsfiddle.net/EVDQa/6/
HTML:
<div id="input">
<form>
<input type="checkbox" name="jobs" value="security">Security
<br>
<input type="checkbox" name="jobs" value="secretarial">Secretarial
</form>
</div>
<div id="display">
<div class="posting hidden security" id="12345">
This is a test Security job. Id: 12345
</div>
<div class="posting hidden secretarial" id="12345">
This is a test Secretarial job. Id: 12345
</div>
</div>
CSS:
.posting {
border: 2px solid #000000;
}
.hidden {
display: none;
visibility: hidden;
}
#input {
float: left;
}
#display {
margin-left: 100px;
float: left;
}
JS:
$("#input form input").change(function () {
var jobType = $(this).val();
var jobIds = [];
var id;
function getJobs() {
$(".posting." + jobType).each(function () {
id = $(this).attr("id");
if ($.inArray(id, jobIds) === -1) {
jobIds.push(id);
$(this).toggleClass("hidden");
if ($(this).hasClass("hidden")) {
jobIds = jQuery.grep(jobIds, function (value) {
return value != id;
});
}
}
});
}
$(".posting:not(.hidden, ." + jobType + ")").each(function () {
id = $(this).attr("id");
if ($.inArray(id, jobIds) === -1) {
jobIds.push(id);
}
});
//Toggle jobs
getJobs();
jobType = $(":checked").val();
getJobs();
});