Как исключить класс из выборки с помощью jQuery?

#jquery

#jquery

Вопрос:

У меня есть такая структура элементов HTML.

     <div class="parent">
       <div class="myChild">A</div>
       <div class="myChild">B</div>
   </div>

   <div class="parent">
       <div class="myChild notYou">C</div>
       <div class="myChild">D</div>
   </div>
 

Как получить весь класс myChild внутри класса parent , но исключить класс с классом notYou из моего выбора? Я использую этот скрипт:

 $(".parent").not(".parent   .notYou").each(function(i){
//something
});
 

Но класс notYou все еще включен.

Ответ №1:

Я понимаю, что вам нужны все .mychild классы, кроме .notYou .

Вот как вы могли бы это получить:

 $(".parent > .myChild:not(.notYou)").each(function(i){
   console.log($(this).html())
}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
       <div class="myChild">A</div>
       <div class="myChild">B</div>
   </div>

   <div class="parent">
       <div class="myChild notYou">C</div>
       <div class="myChild">D</div>
   </div> 

Ответ №2:

Вы неправильно используете not метод. Вы можете выбрать элементы для этого сценария либо с помощью not метода, либо :not с помощью селектора.

$(‘.parent .MyChild:not(.notYou)’); // :не селектор

или

$(‘.parent .MyChild’).not(‘.notYou’); // .not метод

 $(".parent .myChild").not(".notYou").each(function(i){
   console.log($(this).html())
}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
       <div class="myChild">A</div>
       <div class="myChild">B</div>
   </div>

   <div class="parent">
       <div class="myChild notYou">C</div>
       <div class="myChild">D</div>
   </div>