How do i formulate "if this.children.has.not.class"

How do i formulate "if this.children.has.not.class" in jquery?

本文关键字:quot children has class not this do formulate How if      更新时间:2023-09-26

我有一个列表:

<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"的项目,我想看看他们的孩子是否有一个类,如果它没有,我想添加一个类("随机")到那个孩子。

如果这实际上不是一个子,我想要一种方法来检查第二个ul是否有一个类,如果没有,给那个ul添加"random"。我猜我将不得不给它一个id,如果它不是上面的列表项的孩子?

任何帮助将不胜感激!/比尔

您的HTML无效。这将把random班添加到li的孩子中。Left-main-list没有任何类

http://jsfiddle.net/MERF5/

<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')
});

请注意,您的HTML是无效的,第二个ul应该在li元素内。

同样,在添加特定类之前,您不必检查element是否具有特定类。如果元素已经有指定的类,jQuery将不会添加重复的类。

然而,以下是如何在li下找到没有.random类的ul元素(我假设thisli ):

$(this).children('ul:not(.random)');