JQuery的:第n个孩子()追加

问题描述:

我有简单的列表:JQuery的:第n个孩子()追加

<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 ...如何做到这一点? 谢谢!

你可以使用.add()添加到jQuery的结果集的最后li,如果它不被nth-child规则匹配..

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

演示在http://jsfiddle.net/gaby/a8vAU/

+0

非常大的谢谢你! – denys281 2011-12-26 21:35:49

你还可以依靠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>"); 
+0

但这并不像Gabys解决方案那样流畅。 – maxRoald 2011-12-26 17:31:58