JQuery: nth-child () append - PullRequest
       4

JQuery: nth-child () append

1 голос
/ 26 декабря 2011

У меня есть простой список:

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

7 голосов
/ 26 декабря 2011

Вы можете использовать .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/

2 голосов
/ 26 декабря 2011

вы также можете положиться на 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>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...