2015-02-11 57 views
1

我有這個集合的21個jQuery的元素包裝jQuery的收集和追加到

div.article-preview.js - 文章 - 新

div.article-preview.js - 文章 - 新

div.article-preview.js - 文章 - 新 ...

使用此代碼我爲他們追加到頁面。我想知道如何將<div class="row">中的每個第3個元素和<div class="col-sm-12">中的每個元素都包裹起來。我試過使用jQuery.wrap()函數,但它沒有對附加的html做任何事情。

var newArticles = $('<%= j render partial: "articles/article", collection: @articles %>'); 

var arts = newArticles.filter('.article-preview'); 
arts.addClass('js-articles-new'); 
arts.appendTo($('.js-articles-preview')); 
+2

包裹在一個div列表項元素是無效的HTML。 – j08691 2015-02-11 18:06:15

+0

@ j08691謝謝,我改變了李的div而不是。 – parameter 2015-02-11 18:10:00

回答

1

這應做到:

$('div.article-preview.js-articles-new').wrap('<div class="col-sm-12" />'); 
var divs = $("div.col-sm-12"); 
for (var i = 0; i < divs.length; i += 3) { 
    divs.slice(i, i + 3).wrapAll('<div class="row" />'); 
} 

jsFiddle example

0

嘗試使用wrapAll()和slice()

var divs = $("div > div"); 
for(var i = 0; i < divs.length; i+=3) { 
    divs.slice(i, i+3).wrapAll("<div class='new'></div>"); 
}