我有一系列无序列表。我想迭代这个列表,然后找到一个特定的li项,然后在包含那个li的ul中添加一个类。
我希望我对你们这么清楚。让我告诉你我的代码,以便更好地理解。
这是我创建的一个小提琴,可以帮助您理解我的问题。
https://jsfiddle.net/wdwn9swu/
这是我试图针对我需要的ul但它没有用的。
if ($('ul.sub-tab').find('ul.sub-tab > li.super-active')) {
$('ul.sub-tab').find('li.super-active').addClass('super-active');
}
我想在与id对应的列表中,始终打开。
任何想法的家伙?谢谢!
答案 0 :(得分:1)
我认为最简单最简单的方法是:
$("li.super-active").parent().addClass("super-active");
根据您使用有效的html <li>
元素,在这种情况下,父元素必须是<ul>
元素(也可以是<ol>
)。
$('.main-tab>li a').click(function() {
$(this).siblings('.sub-tab').slideToggle(200);
$(this).parent().siblings('li').children('.sub-tab').slideUp(200);
});
$('.main-tab li').each(function() {
id = '10';
$links = $(".main-tab li[data-id =" + id + "]");
$links.addClass("super-active");
//console.log("1234");
});
$("li.super-active").parent().addClass("super-active");
console.log($(".super-active"));
.main-tab ul {
padding-left: 10px;
}
.sub-tab {
display: none;
}
.super-active img {
display: block !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="center">
<ul class="main-tab">
<li data-id="5">
<a href="#">Main 1</a>
<ul class="sub-tab">
<li data-id="7">
<a href="#">Main 1 Sub 1</a>
<ul class="sub-tab">
<li data-id="10"><a href="#">Sub 2</a></li>
<li data-id="11"><a href="#">Sub 2</a></li>
</ul>
</li>
<li>
<a href="#">Main 1 Sub 2</a>
<ul class="sub-tab">
<li data-id="12"><a href="#">Sub 2</a></li>
<li data-id="13"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
<li data-id="8">
<a href="#">Main 2</a>
<ul class="sub-tab">
<li data-id="9">
<a href="#">Main 2 Sub 1</a>
<ul class="sub-tab">
<li data-id="14"><a href="#">Sub 2</a></li>
<li data-id="15"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
<li data-id="3">
<a href="#">Main 3</a>
<ul class="sub-tab">
<li data-id="25">
<a href="#">Main 3 Sub 1</a>
<ul class="sub-tab">
<li data-id="17"><a href="#">Sub 2</a></li>
<li data-id="18"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
答案 1 :(得分:0)
使用jQuery&#39; :has
选择器:
选择包含至少一个与之匹配的元素的元素 指定选择器。
查找包含ul.sub-tab
类的列表项的.super-active
,并将类.super-active
添加到ul:
$('ul.sub-tab:has(li.super-active)').addClass('super-active');
示例:强>
$('ul.sub-tab:has(li.super-active)').addClass('super-active');
&#13;
.sub-tab.super-active {
background: gold;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="center">
<ul class="main-tab">
<li data-id="5">
<a href="#">Main 1</a>
<ul class="sub-tab"> <!-- this will be removed -->
<li data-id="7" class="super-active">
<a href="#">Main 1 Sub 1</a>
<ul class="sub-tab">
<li data-id="10"><a href="#">Sub 2</a></li>
<li data-id="11"><a href="#">Sub 2</a></li>
</ul>
</li>
<li>
<a href="#">Main 1 Sub 2</a>
<ul class="sub-tab">
<li data-id="12"><a href="#">Sub 2</a></li>
<li data-id="13"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
<li data-id="8">
<a href="#">Main 2</a>
<ul class="sub-tab">
<li data-id="9">
<a href="#">Main 2 Sub 1</a>
<ul class="sub-tab">
<li data-id="14"><a href="#">Sub 2</a></li>
<li data-id="15"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
<li data-id="3">
<a href="#">Main 3</a>
<ul class="sub-tab">
<li data-id="25">
<a href="#">Main 3 Sub 1</a>
<ul class="sub-tab">
<li data-id="17"><a href="#">Sub 2</a></li>
<li data-id="18"><a href="#">Sub 2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
&#13;