我想出了一些非常基本的jQuery使用一系列if語句來通過html選擇列表在頁面上顯示/隱藏一些div。如果可能,我想以幾種方式優化此代碼:簡單的jQuery和HTML來顯示/隱藏div頁
1)如何使用較少的代碼來實現相同的結果?
2)這可能有點寬泛,但我怎樣才能優化這段代碼,使新的Div不必手動輸入?換句話說,使它所以我沒有特別添加$(block-x).hide() $(block-x).show() etc...
HTML:
<div class="container">
<form class="form">
<div class="form-group">
<label for="selectList">Filter Divs</label>
<select id="selectList" class="form-control">
<option value="1" id="lAll" selected="selected">Show All</option>
<option value="2" id="lOne">One</option>
<option value="3" id="lTwo">Two</option>
<option value="4" id="lThree">Three</option>
<option value="5" id="lFour">Four</option>
</select>
</div>
</form>
<div class="filterDiv">
<div id="block-1">
<h1> Div One</h1>
</div>
<div id="block-2">
<h1> Div Two</h1>
</div>
<div id="block-3">
<h1> Div Three</h1>
</div>
<div id="block-4">
<h1>Div Four</h1>
</div>
</div>
</div>
JAVASCRIPT:
$('#selectList').change(function() {
$('#block-1').hide();
$('#block-2').hide();
$('#block-3').hide();
$('#block-4').hide();
if ($('#lAll').is(':selected')) {
$('#block-1').fadeIn();
$('#block-2').fadeIn();
$('#block-3').fadeIn();
$('#block-4').fadeIn();
}
if ($('#lOne').is(':selected')) {
$('#block-1').fadeIn();
}
if ($('#lTwo').is(':selected')) {
$('#block-2').fadeIn();
}
if ($('#lThree').is(':selected')) {
$('#block-3').fadeIn();
}
if ($('#lFour').is(':selected')) {
$('#block-4').fadeIn();
}
});
小提琴: https://jsfiddle.net/matts213/29ksshrr/5/
謝謝, 馬特