2009-11-24 2 views
9

JQuery имеет удобный: даже и нечетные: селекторы для выбора четных или нечетных индексированных элементов в наборе, который я использую, чтобы очистить любой другой элемент в серии плавала коробки, как показано ниже:Выберите каждый n-й элемент в 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-мя или 4-мя предметами?

ответ

25

Try:

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

': п-child' также стандарт CSS3, тогда как': odd' является JQuery/Шипение только расширение, которое не будет работать в ваших таблиц стилей. – bobince

+0

Вы также можете использовать только CSS, вы просто хотите применить стили: '.twoup div: nth-child (4n + 1) {clear: both;}' –

1

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


EDIT:

я исправлюсь. Для простоты используйте n-ю дочернюю функцию.

2

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

Пример:

<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");

+0

FWIW: Поскольку он основан на нулевом значении, '(5n)' очищается до 5-го блока и каждые 5 последующих, поэтому вы заканчиваете с 4-мя блоками в первой строке и 5 в следующих строках. '(5n + 1)' отлично работает. –

Смежные вопросы