#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. потрясающе, это сработало! Большое вам спасибо (: