Оставить только родительский ul
Есть дерево категорий с подкатегориями. Когда я нахожусь на странице какой-либо категории или подкатегории, активному и родительскому элементу прислаевается класс active. Например, если я нахожусь в подкатегории Link31, то код выглядит так:
<div class="box-category"> <ul> <li> <a href="url1">Link1</a> <ul class="active"> <li> <a href="url11">Link11</a> </li> <li> <a href="url12">Link12</a> </li> <li> <a href="url13" class="active">Link13</a> </li> <li> <a href="url14">Link14</a> </li> <li> <a href="url15">Link15</a> </li> </ul> </li> <li> <a href="url2">Link2</a> <ul> <li> <a href="url21">Link21</a> </li> <li> <a href="url22">Link22</a> </li> <li> <a href="url23">Link23</a> </li> <li> <a href="url24">Link24</a> </li> <li> <a href="url25">Link25</a> </li> <li> <a href="url26">Link26</a> </li> </ul> </li> </ul> </div> Если визуально, то так: ![]() Вопрос: как оставлять видимой только родительский ul выбранной подкатегории со всеми его li? Т.е. если мы находимся, например, на странице Link13, должно показываться только: ![]() Пытался делать так, но остается только родительский ul + выбранный li, а все остальные li пропадают: function hasClass(element, cls) { return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; } var subcat = $('.box-category ul:nth-child(1) li a'); for (var k = 0; k < subcat.length; k++) { if (hasClass(subcat[k], 'active')) { $(subcat[k]).closest('li').css('display', 'block'); } else { $(subcat[k]).closest('li').css('display', 'none'); } } |
IndigoHollow,
$(".active").parents("li:last").siblings().css({"display" : "none"}); |
Цитата:
"Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его рони." - добавлю чуть позже! |
Часовой пояс GMT +3, время: 01:33. |