JQuery:nth-​​child()追加

时间:2011-12-26 17:16:19

标签: jquery jquery-selectors

我有简单的清单:

<ul>
<li>some text 1 </li>
<li>some text 2</li>
<li>some text 3</li>
<li>some text 4</li>
<li>some text 5</li>
<li>some text 6</li>
<li>some text 7</li>
</ul>

我需要在每个4n元素之后添加一些div

我有:

$("ul li:nth-child(4n)").after("<div style='color:black'>test</div>");

但是例如我有4个元素和我之后的div,而且我只有3个元素,但我需要在第三个元素之后追加我的div ...如何制作这个? 谢谢!

2 个答案:

答案 0 :(得分:7)

如果li规则不匹配,您可以使用.add()添加到jQuery结果集nth-child

$("ul li:nth-child(4n)")
    .add('ul li:last')
    .after("<div style='color:black'>test</div>");

http://jsfiddle.net/gaby/a8vAU/

演示

答案 1 :(得分:2)

你也可以依靠grep进行拣选:

var $lis = $('li');

$lis = $($.grep($lis, function (l, i) {return (i+1)%4 == 0 || i == $lis.length - 1;}));

$lis.after("<div style='color:black'>test</div>");