jQuery - выбрать родительский объект

0

У меня есть такая структура, как

<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>

Теги:
navigation
parent

4 ответа

2

Я предлагаю вам использовать:

.closest(".layer-1");

JSFiddle

EDIT: пользователь теперь хочет добавить "активный" класс. Просто измените код в моем JSFiddle с "green" на "active".

0

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 (' класс')); });

0

Вам нужно назначить класс в 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
});
0

Можешь попробовать:

.closest(".layer-1")

или:

.find(".layer-1")

http://api.jquery.com/closest/

http://api.jquery.com/find/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню