慕桂英546537
2021-06-06 16:17:56
我正在構(gòu)建一個(gè)帶有多個(gè)過濾器選項(xiàng)的過濾器選項(xiàng)。我想過濾課程,但我無法讓它工作。我設(shè)法創(chuàng)建了多個(gè)過濾器。這些過濾器也可以組合使用。但是,如果您隨后調(diào)整/更改這些過濾器之一,則結(jié)果不會更新。先換濾芯1比更改過濾器 2(位置)如果您現(xiàn)在再次更改過濾器 1(過濾器 2 未更改),則不會更新結(jié)果。$('select').change(function() { var current = this.value; $.each($('#FilterContainer').find('div.all').not('.hidden').not('.' + current), function() { $(this).addClass('hidden'); }); $.each($('#FilterContainer').find('div.all').is('.' + current), function() { $(this).removeClass('hidden'); });});.hidden { display: none; }<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script><p>Filter:</p><select class="filterby"> <option value="all"><h5>Show All</h5></option> <option value="1"><h5>One</h5></option> <option value="2"><h5>Two</h5></option> <option value="3"><h5>Three</h5></option></select><p>Location:</p><select class="filterby"> <option value="all"><h5>All Locations</h5></option> <option value="nj"><h5>NJ</h5></option> <option value="ny"><h5>NY</h5></option> <option value="pa"><h5>PA</h5></option></select><div id="FilterContainer"> <div class="all 1 nj">Test One NJ</div> <div class="all 1 ny">Test One NY</div> <div class="all 1 pa">Test One PA</div> <div class="all 2 nj">Test Two NJ</div> <div class="all 2 ny">Test Two NY</div> <div class="all 2 pa">Test Two PA</div> <div class="all 3 nj">Test Three NJ</div> <div class="all 3 ny">Test Three NY</div> <div class="all 3 pa">Test Three PA</div></div>
1 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可能希望通過刪除 .hidden 類來重置每個(gè)用戶交互中的所有元素。在 .change() 函數(shù)的頂部,試試這個(gè):
.removeClass('hidden');
從所有元素中刪除 .hidden 后,您可以將該類添加到需要它的元素中。
在 JSFiddle 示例中,您可以這樣編寫:
$('select').change(function () {
var current = this.value;
$.each($('#FilterContainer').find('div.all'), function () {
$(this).removeClass('hidden');
});
$.each($('#FilterContainer').find('div.all').not('.' + current), function () {
$(this).addClass('hidden');
});
});
添加回答
舉報(bào)
0/150
提交
取消