JQuery - пройти каждый экземпляр div с классом и добавить класс в первые n элементов - PullRequest
1 голос
/ 14 декабря 2009

У меня есть несколько коробок

<div class='ICS_Picture'>
Text
</div>
<div class='ICS_Picture'>
Text
</div>
<div class='ICS_Picture'>
Text
</div>
<div class='ICS_Picture'>
Text
</div>

Я хочу, чтобы jquery добавлял класс ко всем элементам после первого числа n элементов.

У меня есть похожий код, который делает это для tr, но не может получить правильный синтаксис для текущего элемента.

$('.ICS_Picture').each(function(){
   $(this).addClass("hideme");
});

Спасибо

Chris

Ответы [ 4 ]

10 голосов
/ 14 декабря 2009
$('.ICS_Picture:lt(n)').addClass('hideme');

Если n - количество элементов, к которым вы хотите применить класс. Поэтому, если вы хотите применить его к первым четырем элементам, n = 4.

EDIT -

Я просто перечитал вопрос, и ОП ищет применение стилей к элементам ПОСЛЕ определенного числа. В этом случае, пожалуйста, используйте это вместо:

$('.ICS_Picture:gt(n-1').addClass('hideme');

Обратите внимание на n-1, потому что индексирование начинается с нуля, и поэтому, если вы хотите начать применять стили после 4-го элемента, вам нужно убедиться, что значение, которое вы задаете, равно 3. Очевидно, стандартные правила конкатенации применяется, если вы планируете, чтобы n было динамическим значением, а не жестко заданным.

2 голосов
/ 14 декабря 2009
$('.ICS_Picture:gt(4)').addClass('hideeme');
0 голосов
/ 14 декабря 2009

Это можно сделать с помощью селектора gt () :

var toSkip = 4;
$('.ICS_Picture:gt(' + (toSkip - 1) + ')').addClass("hideme");
0 голосов
/ 14 декабря 2009

Прежде всего, каждый не самый оптимизированный способ перебора объекта jquery.

Что вы можете сделать, чтобы достичь того, что вы хотите:

    var $ICSPictures = $('.ICS_Picture');
    for (var i=0;i<$ICSPictures.length;i++){
      if(i>=myLimit)
        $ICSPictures.eq(i).addClass("hideme");
    }

myLimit - это число n , на которое вы ссылаетесь в своем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...