HTML
<ul id="wrapper">
<li>
<ul class="pr">
<li>
<ul class="pr">
<li></li>
<li></li>
</ul>
</li>
<li>
<ul class="pr">
<li></li>
<li></li>
</ul>
</li>
</ul>
</li>
<li>
<ul class="etc">
<li>
<ul class="etc">
<li></li>
<li></li>
</ul>
</li>
<li>
<ul class="etc">
<li></li>
<li></li>
</ul>
</li>
</ul>
</li>
</ul>
Я хочу, когда вы нажимаете на каждый элемент li
, добавляет класс к своим li
элементам ul
(ближе всего ul
, а не все ul
внутри них).
Как это сделать?
Извините за мой плохой английский.
Пытаться
$('#wrapper li:has(ul)').click(function (e) {
$(this).children('ul').toggleClass('myclass');
e.stopPropagation();
})
Демо: скрипка
Как это?
$('li').on('click', function(){
// > mean one level children
$('> ul', this).addClass('yourClass');
});
$('li:has(ul)').click(function () {
$(this).children('ul').addClass('ClassName');
});
Рекомендации
если вы хотите добавить класс ко всем ul-элементам внутри li. find()
$('li:has(ul)').click(function () {
$(this).find('ul').addClass('ClassName');
});
ul
только, не всеul
внутри них.