2015-09-27 4 views
0

Я хочу выделить все элементы, кроме первого в div с этим классом.jquery: not (: first-child) wrapAll() each div

Текущий HTML:

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

Я попытался использовать обертку все:

$(".pt-cv-content-item :not(:first-child)").wrapAll("<div class='new'></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. Заранее спасибо

ответ

0

Оберните весь контент, затем перенесите первого ребенка из .new в главный div.

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>

1

Используйте wrap вместо wrapAll.

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

wrap

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

wrapall

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

+0

Функция обертывания каждого выбранного элемента, спасибо вам в любом случае –

0

Я выбрал все элементы в».pt-CV-содержимого элемента ':

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

Я переехал первый в HREF в' .pt-CV- контентного пункт»Див

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

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

Смежные вопросы