jquery:not(:first-child) wrapAll() каждый div

Я хочу выбрать все элементы, кроме первого в div с этим классом.

Текущий HTML:

<div class="cpt-cv-content-item">
    <a>...</a>
    <h4>...</h4>
    ...
</div>
<div class="cpt-cv-content-item">
    <a>...</a>
    <h4>...</h4>
    ...
</div>

Я пытался использовать Wrap All:

$(".pt-cv-content-item :not(:first-child)").wrapAll( "<div class='new'></div>" );

Эта функция правильно выбирает все элементы, кроме первого, но перемещает их все в первый div.

Я хочу получить вот так:

<div class="cpt-cv-content-item">
    <a>...</a>
    <div class='new'>
    <h4>...</h4>
    ...
    </div>
</div>
<div class="cpt-cv-content-item">
    <a>...</a>
    <div class='new'>
    <h4>...</h4>
    ...
    </div>
</div>

К сожалению, я не могу редактировать HTML. заранее спасибо

3 ответа

Решение

Оберните весь контент, затем переместите первого ребенка из .new на главную див.

использование wrapInner() обернуть всех детей. использование prependTo() переместить элемент в начало элемента.

$(".cpt-cv-content-item").wrapInner($("<div class='new'>"));
$('div.new').each(function(){
  $(this).children().first().prependTo($(this).closest(".cpt-cv-content-item"));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="cpt-cv-content-item">
    <a>...</a>
    <h4>...</h4>
    ...
</div>
<div class="cpt-cv-content-item">
    <a>...</a>
    <h4>...</h4>
    ...
</div>

Использование wrap вместо wrapAll,

 $(".pt-cv-content-item :not(:first-child)").wrap( "<div class='new'></div>" );

заворачивать

Описание: обернуть структуру HTML вокруг каждого элемента в наборе соответствующих элементов.

wrapall

Описание: обернуть структуру HTML вокруг всех элементов в наборе соответствующих элементов.

Я выбрал все элементы в ".pt-cv-content-item":

$(".pt-cv-content-item ").wrapInner( "<div class='new'></div>" );

Я переместил первый href в '.pt-cv-content-item' div

$(".new a:first-child").each(function() {
    $(this).parent().before(this);
});

Спасибо вам, ребята

Другие вопросы по тегам