嘗試
$("input").on("click", function() {
var selector = $('input[name="human"]:checked').map(function() {
return '.' + this.value;
}).get().join('')
$('div').hide().filter(selector).show();
});
演示:Fiddle
要清理
<input type="checkbox" name="human" value="man">Man<br>
<input type="checkbox" name="human" value="woman">Woman<br>
<input type="checkbox" name="human" value="tall">Tall<br>
<input type="checkbox" name="human" value="short">Short
<div class="human tall man">Tall Man</div>
<div class="human short man">Short Man</div>
<div class="human tall woman">Tall Woman</div>
<div class="human short woman">Short Woman</div>
然後
var $humans = $('div.human');
$('input[name="human"]').on("click", function() {
var selector = $('input[name="human"]:checked').map(function() {
return '.' + this.value;
}).get().join('')
$humans.hide().filter(selector).show();
});
演示:Fiddle
它工作。你能解釋你是如何實現它的嗎?我的意思是邏輯。 –
@JamesKing第一步是創建一個選擇器,它將只選擇那些必須顯示的元素,因此我們遍歷所有檢查過的輸入並創建一個類似'.man.tall'或'.man.woman'的選擇器,然後我們隱藏所有的div,然後只顯示匹配給定選擇器的那些元素 –