#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>