@kamisarlapsha

Как проверить наличие двух элементов jquery?

Привет! Есть блоки
<div class="product-layout product-list"><!--содержимое--></div>
и у них может быть дочерний элемент span class="special-new--stiker">NEW</span> или
<span class="special-price--stiker">Второй элемент</span>
. Но может быть ситуация, когда они могут быть оба у родителя product-layout product-list. И мне необходимо добавить класс к родителю, когда их два. Заранее спасибо!

Должно получится так:
<div class="product-layout product-list">
<span class="special-new--stiker">NEW</span>
<!--содержимое-->
</div>
<div class="product-layout product-list two-stikers"> <!--Элемент special-new--stiker и special-price--stiker , поэтому добавляем класс two-stikers-->
<span class="special-new--stiker">NEW</span>
<span class="special-price--stiker">Второй элемент</span>
<!--содержимое-->
</div>
<div class="product-layout product-list">
<span class="special-new--stiker">NEW</span>
<!--содержимое-->
</div>
<div class="product-layout product-list">
<span class="special-price--stiker">Второй элемент</span>
<!--содержимое-->
</div>
  • Вопрос задан
  • 132 просмотра
Решения вопроса 2
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
$('.product-list').each(function() {
   var $this = $(this);
   if ($this.find('span').length === 2) {
      $this.addClass('two-stikers');
   }
});

ну или не через span искать, а $this.find('span[class^="special-"]'). А еще лучше, добавить к span общий класс, и по нему искать.
Ответ написан
profesor08
@profesor08 Куратор тега JavaScript
Пробегись по всем контейнерам и проверь наличие элементов простым селектором.
$(".product-layout.product-list").each(function() {
  let $container = $(this);

  if ($container.find(".special-new--stiker, .special-price--stiker").length === 2) {
    $container.addClass(".two-stikers");
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы