以下是已创建的标签。
<div class="2013"><p>Item 1</p></div>
<div class="2013"><p>Item 2</p></div>
<div class="2012"><p>Item 3</p></div>
<div class="2012"><p>Item 4</p></div>
<div class="2012"><p>Item 5</p></div>
<div class="2011"><p>Item 6</p></div>
我需要使用jQuery将它们排列如下。
<div id="2013">
<div class="2013"><p>Item 1</p></div>
<div class="2013"><p>Item 2</p></div>
</div>
<div id="2012">
<div class="2012"><p>Item 3</p></div>
<div class="2012"><p>Item 4</p></div>
<div class="2012"><p>Item 5</p></div>
</div>
<div id="2012">
<div class="2011"><p>Item 6</p></div>
</div>
答案 0 :(得分:6)
尝试
//here find out the divs you want to target - this filter is for demo only
var $targets = $('div');
var classes = {};
$targets.each(function(){
classes[this.className] = this.className;
})
$.each(classes, function(key, value){
$targets.filter('.' + key).wrapAll($('<div />', {
id: key
}))
})
演示:Fiddle
答案 1 :(得分:1)
使用each
和wrapAll()
试试这个..
var tempObj={};
$('div').each(function(){
var className=this.className;
tempObj[className]=className;
});
$.each(tempObj,function(i,v){
$('.'+v).wrapAll('<div id="'+v+'"></div>')
});