2009-04-17 1 views
0

Скажем, у меня есть 5 сильных элементов, и я хочу обернуть их в элементы div, в группах по 2, используя jQuery.Можете ли вы получить подмножество элементов в jQuery в соответствии с суммой группировки?

Пример:

<!--original markup--> 
<strong>I AM STRONG</strong> 
<strong>I AM STRONG</strong> 
<strong>I AM STRONG</strong> 
<strong>I AM STRONG</strong> 
<strong>I AM STRONG</strong> 

Становится

<!-- new markup --> 
<div> 
    <strong>I AM STRONG</strong> 
    <strong>I AM STRONG</strong> 
</div> 
<div> 
    <strong>I AM STRONG</strong> 
    <strong>I AM STRONG</strong> 
</div><div> 
    <strong>I AM STRONG</strong> 
</div> 

Что бы лучший способ сделать это? Я пробовал несколько вещей, но они были проблематичными. Сильные элементы не могут иметь фиксированную высоту. Кроме того, эти элементы, например, только.

Как написать цикл jQuery для этого?

Спасибо

Редактировать Существует не фиксированное количество элементов.

ответ

4

я, наверное, просто цикл два одновременно, упаковка каждой пары, как я иду ...

var elems = $("strong"); 
for (var i=0; i<elems.length; i+=2) 
{ 
    elems.slice(i,i+2) // split off a pair 
    .wrapAll("<div>"); // wrap it 
} 
+0

Clever код ... Спасибо Shog9! – alex

0

Вы можете использовать: odd для выбора каждого другого элемента, затем .prev, чтобы получить четный элемент.

$('strong:odd').each(function(){ 
    var divElement = $('<div></div>').append($(this).prev(), $(this)); 
    // Now add the divElement to a new container? 
}); 
Смежные вопросы