这可能更容易
var puts = $('.a');//get checkboxes
var cans = $('.field');//get content
puts.on('change', function() {//when checkbox changes
if (!puts.filter(':checked').length) {//if nothing's checked
cans.show();//show it all
} else {//if something's checked
cans.hide();//hide all
puts.filter(':checked').each(function() {//get checked
$('.'+this.id+':hidden').show();//show if hidden
});
}
});
放小提琴: http://jsfiddle.net/filever10/f8vk2/
分解
puts
是复选框
cans
是内容块
当复选框状态更改时,如果当前没有检查任何内容,则显示所有内容。如果检查了某些内容,它将隐藏所有内容块,并显示所有具有与之匹配的类的类 id
一个检查盒。它仅显示隐藏的内容,因此它不必在适用于多个检查框的内容块上多次运行。