2015-06-17 3 views
4

У меня есть контейнер DIV с двумя дивы внутри него, как, например:wrapAll() создает двойные divs?

<div class="container"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
</div> 

Я завернуты другой DIV вокруг «ребенка1» и «child2», но это в два раза появляются, которые я не смог исправить :

$(".child1, .child2").wrapAll('<div class="style"></div>'); 

Который делает, как следующее:

<div class="container"> 
    <div class="style"> 
     <div class="style"> 
      <div class="child1"></div> 
      <div class="child2"></div> 
     </div> 
    </div> 
</div> 

Но то, что я на самом деле хочу следующее:

<div class="container"> 
    <div class="style"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
    </div> 
</div> 

Как это исправить? Я попробовал множество других методов, чтобы сортировать double-append.

EDIT: проблема заключалась в том, что jquery дважды стрелял, я переместил код из существующего файла и в новый файл. Как только я это сделал, ответы ниже все работали.

+0

Могу ли я знать, в каком браузере вы тестируете. – stanze

+1

Работы для меня http://jsfiddle.net/f4a75dh1/, проверьте исходный DOM, проверив с помощью инструментов dev, что-то может вызвать функцию дважды. –

+1

Работаю отлично http://jsfiddle.net/q8fcrxy9/5/ – Balachandran

ответ

2

Я побежал this в скрипке и, похоже, отлично работает ... ??????

Вы можете сделать this хотя ...

$(".container").each(function() { 
    var ch1 = $(this).find('.child1'); 
    var ch2 = $(this).find('.child2'); 
    var st = $('<div class="style">'); 
    st.append(ch1); 
    st.append(ch2); 
    $(this).html('').append(st); 
}); 
+0

Спасибо, код работал дважды, поэтому я исправил его сейчас. –

+0

@foreverlearning Отлично! Вы можете щелкнуть галочкой рядом с моим ответом слева. :) И стрелка вверх тоже, если вы сочтете это полезным :) –

3
$(".child1").next().andSelf().wrapAll("<div class='style'/>"); 

Попробуйте ...

3

Изменение вы разметкой немного, (просто добавить общий класс)

<div class="container"> 
    <div class="child1 child"></div> 
    <div class="child2 child"></div> 
</div> 

теперь использовать ниже код:

$(".child").wrapAll("<div class='style' />"); 
Смежные вопросы