2015-08-16 57 views
0

每2個元素圍繞一個div我有一些HTML這樣的:裹在jQuery的

<span>Header Here</span> 
<span>Content Here</span> 
<span>Another Header</span> 
<span>Some Other Content Here</span> 

正如你所看到的HTML是不是真的格式化在一個非常方便的方式,可惜我不能改變輸出,我需要做的是每包2個跨,一個div所以輸出變成這樣:

<div class="row"> 
    <span>Header Here</span> 
    <span>Content Here</span> 
</div> 
<div class="row offsetRow"> 
    <span>Another Header</span> 
    <span>Some Other Content Here</span> 
</div> 

的offsetRow類將重複每隔一行。

這甚至可能在jQuery?

回答

4

您可以使用.wrapAll()

var $els = $('span'); 
 
for (var i = 0; i < $els.length; i += 2) { 
 
    $els.slice(i, i + 2).wrapAll('<div class="row ' + (i > 0 && i % 2 == 0 && i % 4 != 0 ? 'offsetRow' : '') + '"></div>') 
 
}
.row { 
 
    color: grey 
 
} 
 
.offsetRow { 
 
    background-color: lightblue; 
 
} 
 
span { 
 
    border: 1px solid red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<span>Header Here</span> 
 
<span>Content Here</span> 
 
<span>Another Header</span> 
 
<span>Another Header</span> 
 
<span>Another Header</span> 
 
<span>Another Header</span> 
 
<span>Another Header</span> 
 
<span>Another Header</span>

+0

它的工作,但它並不需要wrapAll,只是一個包裝,比其他的完美!謝謝 – Jordash