jQuery каждый выпуск — div завернут дважды

#javascript #html #jquery #frontend

Вопрос:

Я пытаюсь решить проблему, с которой я сталкиваюсь с jQuery по каждому из них. У меня есть список элементов (class .list), которые мне нужно нацелить и обернуть в div (class .wrap). Это работает, если список, но когда есть второй, цикл дважды обертывает список в новом div.

Идея заключается в том, что каждый раз, когда существует класс под названием list, цикл переносит этот конкретный класс в div, называемый wrap.

Вот код

HTML

  <div class='parent'>
    <div class='child'>
      <div class='list'>
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div>
    </div>
  </div>
  
   <div class='parent'>
    <div class='child'>
      <div class='list'>
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div>
    </div>
  </div>

 

jQuery

 jQuery(".parent").each(function () {
  jQuery(".list").wrap("<div class='wrap'></div>");
});

 

Это результат с ошибкой.
Список классов завернут дважды, как вы можете видеть из примера ниже.

 <div class="parent">
    <div class="child">
      <div class="wrap"><div class="wrap"><div class="list">
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div></div></div>
    </div>
  </div>
 

И это то, чего я пытаюсь достичь.

 <div class="parent">
    <div class="child">
      <div class="wrap">
          <div class="list">
          <div>1</div>
          <div>2</div>
          <div>3</div>
        </div>
      </div>
    </div>
  </div>
 

Заранее благодарю вас!

Комментарии:

1. Вы не выбираете список родителей, вы выбираете всех родителей, вы зацикливаетесь, вы выбираете все списки на странице и переносите. Таким образом, вы выбираете все списки один раз для каждого родителя.

Ответ №1:

Вы хотите выбрать список в родительском, а не выбрать все списки

 jQuery(this).find(".list").wrap()
 

Комментарии:

1. потрясающе, это сработало! Большое вам спасибо (: