Как добавить несколько классов в список ul - PullRequest
0 голосов
/ 16 февраля 2010

Как я могу добавить несколько классов в список ul? Я не хочу добавлять его к каждому элементу li, но только к некоторым из них.

EDIT:

Я хочу добавить классы с помощью jQuery. Как это:

<ul>
    <li>something1</li>
    <li>something2</li>
    <li>something3</li>
    <li>something4</li>
    <li>something5</li>
</ul>

А теперь я хочу добавить класс каждые li после второго (3-й, 4-й и 5-й элемент li). Я знаю, как добавить класс, но как мне сделать так, чтобы он повторялся в каждом li? Это моя проблема на самом деле.

Ответы [ 4 ]

1 голос
/ 16 февраля 2010

Ваш вопрос недостаточно подробен, но в общем случае вы захотите установить классы для определенных элементов li по мере необходимости.

Например:

<ul>
<li class="first winter thirty-one">January</li>
<li class="winter">February</li>
<li class="spring thirty-one">March</li>
<li class="spring">April</li>
<li class="spring thirty-one">May</li>
<li class="summer">June</li>
<li class="summer schools-out thirty-one">July</li>
<li class="summer schools-out thirty-one">August</li>
<li class="fall">September</li>
<li class="fall thirty-one">October</li>
<li class="fall">November</li>
<li class="last winter thirty-one">December</li>
</ul>
1 голос
/ 16 февраля 2010

Существует несколько способов доступа к определенному индексу элементов.

Селектор :eq() может обращаться к одному индексу:

$('li:eq(1)')

http://api.jquery.com/eq-selector/

Функция .nextAll() возвращает всех следующих братьев и сестер каждого элемента в наборе совпадающих элементов:

$('li:eq(2)').nextAll();

http://api.jquery.com/nextAll/

.prevAll() работает так же, но возвращает предыдущих братьев:

$('li:eq(2)').prevAll();

http://api.jquery.com/prevAll/

1 голос
/ 16 февраля 2010

Ну, чтобы добавить 3 класса к каждому li в ul, вы должны сделать:

$("#myUl > li").addClass("class1 class2 class3");

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

$("#myUl > li:even").addClass("class1 class2 class3");

Это добавит три класса друг к другу li (точнее, четные элементы в массиве с нулевым индексом).

Удачи.

0 голосов
/ 28 декабря 2012

Вы можете использовать метод .filter() для фильтрации вашего выбора.

$('li').filter(':nth-child(n+3)').addClass('className');

Теперь все, что соответствует этому критерию, получит атрибут класса. В вашем примере 3-й, 4-й и 5-й li получат его.

...