所以这个不起作用的小提琴http://jsfiddle.net/1auhde3L/是基于这个小提琴http://jsfiddle.net/B9Hnu/125/确实有效,但它没有考虑我的html是如何使用数据类别和复选框的rel或ID标签中的标签。
这是jquery ......
$(function() {
var $checkboxes = $("input[id^='type-']");
$('input[type=checkbox]:checked').attr('checked', false);
$checkboxes.change(function() {
console.log($('input[type=checkbox]:checked').length);
if( $('input[type=checkbox]:checked'
).length>0)
{
var selector = '';
$checkboxes.filter(':checked').each(function() { // checked
//selector += '.' + this.id.replace('type-', '') + ', ';
selector += "[data-category~='" + element.id + "']";
// builds a selector like '.A, .B, .C, '
});
selector = selector.substring(0, selector.length - 2); // remove trailing ', '
$('.results > div').hide() // hide all rows
.filter(selector).show(); // reduce set to matched and show
}else
{
$('.results > div').show()
}
});
});
答案 0 :(得分:2)
我相信这就是你looking for。
您的代码中存在一些问题:
$("input[id^='type-']");
,但问题是您的身份证明不是以"类型开始 - " 快乐的编码!
更新
我updated使用数组而不是字符串的代码。这将允许您根据各个字符串进行过滤。它还消除了单击复选框的顺序,并消除了对两个选择器字符串的需求。