我需要编写一个jQuery,在所有子级别循环一个ul儿童li,然后发现这些孩子中是否有任何一个类测试什么都不做,但如果他们都没有这个类,我想给主要的父级ul某个班级, 这是代码示例
<ul class="level1" id="navigation">
<li class="hasChildNodes"><a href="#"><span>Community</span></a>
<ul class="menuLevelContainer level2 hasChildNodes">
<li class=""><a href="#"><span>Blogs</span></a></li>
<li class=""><a href="#"><span>Discussions</span></a></li>
<li class=""><a href="#"><span>Photos</span></a></li>
<li class=""><a href="#"><span>Polls & Surveys</span></a></li>
<li class=""><a href="#><span>Suggestions</span></a></li>
</ul>
</li>
<li class=""><a href="/Events/Pages/default.aspx"><span>Events</span></a></li>
<li class="hasChildNodes"><a href="/News/Pages/default.aspx"><span>News</span></a>
<ul class="menuLevelContainer level2 hasChildNodes">
<li class=""><a href="#"><span>Annoucements</span></a></li>
<li class=""><a href="#"><span>Good Morning
Done</span></a></li></ul>
</li>
并且我想搜索ul的所有孩子,看看它是否有一个名为class的孩子,如果不是我想给ul进行类测试,例如,但是我想给出特定的ul类,所以不应该;首先捕获它,这个或什么?
答案 0 :(得分:3)
if($('ul li.test').length == 0){
$('ul').addClass('classToAdd');
}
如果需要,您可以通过在上面的代码中为ul元素提供Id并将ul更改为#someId来使其更具体:
if($('#someId li.test').length == 0){
$('#someId').addClass('classToAdd');
}
答案 1 :(得分:0)
var ul = $('ul#some-id');
if (!ul.find('li.test')[0]) {
ul.addClass('some-class');
}
if
块中的代码仅在ul.find('li.test')
返回非空集合时执行。请将课程“test”更改为您要测试<li/>
子项的任何内容。
答案 2 :(得分:0)
$i = 0 ;
$('ul')find('li').each(function(){
if($(this).hasClass('test')) {
$i++;
}
});
if($i == 0 ) {
$('ul').addClass('main');
}