У меня есть такая структура, как
<ul class="layer-1">
<li>
<ul>
<li>back</li>
<li>item-1</li>
<li>item-2</li>
</ul>
</li>
<li>item-2</li>
<li>item-3</li>
</ul>
и я хочу, чтобы кнопка "Назад" вступила в силу для родительского <ul class="layer-1">
. например, изменить его на <ul class="layer-1 active">
если вы нажмете на <li>back</li>
Я предлагаю вам использовать:
.closest(".layer-1");
EDIT: пользователь теперь хочет добавить "активный" класс. Просто измените код в моем JSFiddle с "green" на "active".
U может использовать следующий код:
<ul class="layer-1">
<li>
<ul class="asd">
<li class="tee">back</li>
<li>...</li>
<li>...</li>
</ul>
</li>
<li>...</li>
<li>...</li>
</ul>
И в js-коде: $ ('. Tee'). Click (function() {console.log($ (this).closest('ul'). Closeest ('li'). Parent(). Attr (' класс')); });
Вам нужно назначить класс в back list и сделать следующее:
$('.back').on('click',function(){
$(this).closest('.layer-1').addClass('active');
// you wish to use toggleClass instead of addClass
});
Или, если это ваша окончательная разметка, вы можете использовать это:
$('.layer-1 ul li:first-child').on('click',function(){
$(this).closest('.layer-1').addClass('active');
// you wish to use toggleClass instead of addClass
});