Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.05.2016, 22:14
Аватар для IndigoHollow
Аспирант
Отправить личное сообщение для IndigoHollow Посмотреть профиль Найти все сообщения от IndigoHollow
 
Регистрация: 02.04.2012
Сообщений: 50

Оставить только родительский 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');
				}
			}
Ответить с цитированием
  #2 (permalink)  
Старый 04.05.2016, 22:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

IndigoHollow,
$(".active").parents("li:last").siblings().css({"display" : "none"});

Последний раз редактировалось рони, 04.05.2016 в 22:35.
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2016, 11:28
Аватар для IndigoHollow
Аспирант
Отправить личное сообщение для IndigoHollow Посмотреть профиль Найти все сообщения от IndigoHollow
 
Регистрация: 02.04.2012
Сообщений: 50

Сообщение от рони Посмотреть сообщение
IndigoHollow,
$(".active").parents("li:last").siblings().css({"display" : "none"});
Все работает, спасибо большое! А я писал какие-то функции...

"Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его рони." - добавлю чуть позже!

Последний раз редактировалось IndigoHollow, 05.05.2016 в 11:42.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оставить только цифры espltd Элементы интерфейса 3 30.07.2015 14:19
Замена подстроки только 1 раз Telnet Events/DOM/Window 3 23.06.2015 10:29
Как взять только текст а разметку оставить внутри элемента? Кирюха =) jQuery 3 17.05.2015 22:32
AJAX, Только передача данных. NewJSUser AJAX и COMET 14 12.01.2015 17:38
JS'ом поменять textDecoration только для случаев link и visited lancer Элементы интерфейса 3 05.04.2008 20:51