我有一个清单:
<ul>
<li class="left-main-list"><a href="#">Whatnot</a></li>
<li class="left-main-list active"><a href="#">Whatnot1</a></li>
<ul class="random">
<li><a href="#">BK Sang, Oxelesund</a></li>
<li><a href="#">Boxholms BS</a></li>
</ul>
<li class="left-main-list"><a href="#">Whatnot2</a></li>
</ul>
首先我想知道,第二个<ul class="random">
是上面列表项的孩子吗?
如果是这样,我想做一个if声明,说如果有人点击一个"left-main-list"
类的项目,我想知道他们的孩子是否有一个班级,如果它没有' t,我想为那个孩子添加一个班级(“随机”)。
如果这实际上不是孩子,我想要一种方法来检查第二个ul是否有一个类,如果没有,则将“随机”添加到该ul。我猜我不得不给它一个id,如果它不是上面列表项的孩子?
任何帮助将不胜感激! /比尔
答案 0 :(得分:3)
您的HTML无效UL不能包含其他UL。这会将类random
添加到li.left-main-list的子节点中,它们根本没有任何类。
<ul>
<li class="left-main-list"><a href="#">Whatnot</a></li>
<li class="left-main-list active"><a href="#">Whatnot1</a>
<ul>
<li><a href="#">BK Sang, Oxelesund</a></li>
<li><a href="#">Boxholms BS</a></li>
</ul>
</li>
<li class="left-main-list"><a href="#">Whatnot2</a></li>
</ul>
$('.left-main-list').click(function(){
$(this).children(':not([class])').addClass('random')
});
答案 1 :(得分:0)
请注意,rour HTML无效,第二个ul
应位于li
元素内。
此外,在添加该类之前,您无需检查element
是否具有特定类。如果元素已经具有指定的类,jQuery将不会添加重复的类。
但是,如果ul
下没有.random
类,我们就会找到li
个元素(我认为this
是li
< / em>的):
$(this).children('ul:not(.random)');