jQuery除了最后一个每四个元素

时间:2014-03-23 11:14:19

标签: javascript jquery css

我试图添加一个标题'每个第四个元素之后的元素,我使用它,它工作得很好。

$('.each-work:nth-of-type(4n)').each(function() {
    $(this).after('<div class="each-work each-works-caption"><ul></ul></div>');
});

唯一的元素数量不能被4整除,它是添加元素的CMS,因此元素的数量可以定期增长/缩小。如何编辑此功能以包括4n

之外的其余元素

例如,目前它看起来像这样:

<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>

我理想地喜欢:

<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>
<div class="each-work"></div>
<div class="each-work"></div>
<div class="each-work each-works-caption"><ul></ul></div>

由于 [R

2 个答案:

答案 0 :(得分:2)

除了选择每个第四个孩子外,还要选择最后一个孩子:

$('.each-work:nth-of-type(4n), .each-work:last-of-type').each(function() {
    $(this).after('<div class="each-work each-works-caption"><ul></ul></div>');
});

JSFiddle

答案 1 :(得分:0)

尝试:

function addNewDiv() {
    $(this).after('<div class="each-work each-works-caption"><ul></ul></div>');
}

$('.each-work')
    .filter(':nth-of-type(4n)')
        .each(addNewDiv)
        .end()
    .last()
        .each(addNewDiv);