jQuery Wrap独特的元素

时间:2013-09-03 06:31:59

标签: javascript jquery html css grouping

以下是已创建的标签。

<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>

2 个答案:

答案 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)

使用eachwrapAll()

试试这个..

var tempObj={};
$('div').each(function(){
  var className=this.className;
  tempObj[className]=className;
});
$.each(tempObj,function(i,v){
  $('.'+v).wrapAll('<div id="'+v+'"></div>')
});

fiddle here