尝试仅显示每个.filter之前的.active-box范围。我尝试过使用.prev,.closest,.siblings和其他一些方法,但我似乎无法使用任何东西。根据我使用它,它将切换所有或没有,似乎无法挑出.active-box。我知道一些基本的JQuery,但我对此感到困惑并且没有想法。我做错了什么?
我还尝试了<li>
标记内的每个方法。
.empty-box显示一个空框,.active-box填充空框,点击一个较小的方框。
HTML:
<div class="filter-dropdown">
<ul>
<span class="empty-box"><span class="active-box"></span></span><li class="filter" class="active" data-filter="all" data-dimension="season">All</li>
<span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="winter" data-dimension="season">Winter</li>
<span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="fall" data-dimension="season">Fall</li>
<span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="summer" data-dimension="season">Summer</li>
<span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="spring" data-dimension="season">Spring</li>
</ul>
</div>
JQuery的:
$('.filter').click(function() {
$('span').closest('.active-box').toggle();});
答案 0 :(得分:2)
你需要:
$('.filter').click(function() {
$(this).prev('.empty-box').find('.active-box').toggle();
});