【发布时间】:2016-04-11 01:04:28
【问题描述】:
我正在使用以下代码:
var groups = {};
$(".product-list .product-list_item").each(function(i) {
var c = $(this).attr("class");
if(!groups[c]) groups[c] = [];
groups[c].push(this);
});
for(var i in groups) {
$(groups[i]).wrapAll('<div class="product-list_row" />').each(function(i){
if (((i+1) % 3) == 0)
$(this).after('</div><div class="product-list_row">');
});
}
我想要这个:
<div class="product-list">
<div class="product-list_item jackson">x</div>
<div class="product-list_item jackson">x</div>
<div class="product-list_item jackson">x</div>
<div class="product-list_item jackson">x</div>
<div class="product-list_item mason">x</div>
<div class="product-list_item mason">x</div>
<div class="product-list_item mason">x</div>
</div>
<div class="whatever">
<p>hello i'm a different div</p>
</div>
<div class="product-list">
<div class="product-list_item taylor">x</div>
<div class="product-list_item taylor">x</div>
<div class="product-list_item pencil">x</div>
<div class="product-list_item pencil">x</div>
<div class="product-list_item pencil">x</div>
</div>
看起来像这样:
<div class="product-list">
<div class="product-list_row">
<div class="product-list_item jackson">x</div>
<div class="product-list_item jackson">x</div>
<div class="product-list_item jackson">x</div>
</div>
<div class="product-list_row">
<div class="product-list_item jackson">x</div>
</div>
<div class="product-list_row">
<div class="product-list_item mason">x</div>
<div class="product-list_item mason">x</div>
<div class="product-list_item mason">x</div>
</div>
</div>
<div class="whatever">
<p>hello i'm a different div</p>
</div>
<div class="product-list">
<div class="product-list_row">
<div class="product-list_item taylor">x</div>
<div class="product-list_item taylor">x</div>
</div>
<div class="product-list_row">
<div class="product-list_item pencil">x</div>
<div class="product-list_item pencil">x</div>
<div class="product-list_item pencil">x</div>
</div>
</div>
如何让 jQuery 为 .product-list_row 插入一个结束标记和开始标记,例如 </div><div class="product-list_row"> 而不忽略结束标记,然后将结束标记添加到同一个新开始标记。如果你直接看上面的“jackson”类组的分裂,这就是我试图得到它的方式。
它将使用动态创建的 product-list_row div 正确地包装具有相同类名的分组 div。然后在该组中,它正确地找到并在 X 个 div 之后插入新的 html,但它只是没有根据我的需要正确格式化它,因为 jQuery 会自动关闭并删除我的结束标记。
我在这里找到了一些建议,这些建议将我引向了我正在弄乱的代码,我在这里做了一个小技巧:http://jsfiddle.net/jonnyplow/Lqj73ewv/
有什么想法吗?
【问题讨论】:
标签: javascript jquery tags