jquery group每隔3个div

时间:2012-03-22 14:10:54

标签: jquery html css-selectors jquery-selectors grouping

我有以下结构,一个外部div(#results)和大约20个带有类事件的div。我想对每3个事件进行分组,并在它们周围包装一个名为outer的div,

<div id="result">

    <div class="event">
        <div class="date">8 April</div> 
            <div class="eventname">my title</div>
            <div class="link">my link goes here</div>
    </div>

// lots more events here
</div>

3 个答案:

答案 0 :(得分:6)

尝试:

while ($('#result > .event').length > 0) {
    $('#result > .event:lt(3)').wrapAll('<div class="wrap"></div>')
}​​​​

http://jsfiddle.net/rxxjp/

答案 1 :(得分:4)

以下是一种方法:http://jsfiddle.net/vM9KM/4/

$('#result').children('div.event:nth-child(3n+1)').each(function(i,el) {
    $(this).next().andSelf().next().andSelf().wrapAll('<div class="outer">');
});​

http://api.jquery.com/nth-child-selector/

答案 2 :(得分:1)

我已使用splicewrapAll函数对3个div进行分组并将其包装在<div class="wrapper" ></div>

DEMO

var events = $('#result .event');

while (events.length >= 3) {
    $(events.splice(0, 3)).wrapAll('<div class="wrapper" />');
}

//wrap the remaining < than 3 div inside wrapper
$(events.splice(0, events.length)).wrapAll('<div class="wrapper" />');