Выберите каждый N-й элемент в jQuery?

jQuery имеет удобные :четные и: нечетные селекторы для выбора четных или нечетных индексированных элементов в наборе, которые я использую для очистки каждого другого элемента в серии плавающих ящиков, следующим образом:

<div class='2up'>
   <div> ... </div>
   <div> ... </div>
   ...
   <div> ... </div>
</div>

и

// Clear every 2nd block for 2-up blocks
$('.2up>div:even').css("clear", "both");

это работает как шарм.

мой вопрос: есть ли простой способ в jQuery выбрать каждый третий или четвертый элемент, чтобы я мог сделать то же самое с 3-up или 4-up элементами?

4 ответов


попробуй:

$("div:nth-child(3n+1)").css("clear", "both");

вы можете использовать :nth-child(index/even/odd/equation) селектор. http://docs.jquery.com/Selectors/nthChild#index


можно использовать : nth-child (индекс/четное/нечетное/уравнение) селектор.

пример:

<div class='5up'>
   <div> ... </div>
   <div> ... </div>
   ...
   <div> ... </div>
</div>
и
// Clear every 5th block for 5-up blocks
$('.5up>div:nth-child(5n)').css("clear", "both");
или
// Clear after every 5th block for 5-up blocks
// note: This will also clear first block.
$('.5up>div:nth-child(5n+1)').css("clear", "both");

нет, не как таковой. The filter функция позволит вам это сделать.


EDIT:

Я исправлюсь. Воспользуйтесь функцией n-го ребенка, для простоты.