Добавить класс через цикл for - PullRequest
0 голосов
/ 31 августа 2011

У меня очень простой цикл for в jQuery:

var iEra;
for(iEra = 1; iEra <= li.length; iEra++) {
    li.addClass(iEra);
}

li - это переменная, нацеленная на объекты $ ('ul.class li'). iEra - это переменная счетчика, которая должна начинаться с 1 до количества li присутствующих объектов.

Основная проблема заключается в том, что функция addClass вообще не выполняется,Однако, если я заменю его, например, alert (iEra); , я получу свои 1-x оповещения.

Я знаю, что мог бы изменить свой цикл for на "constructor ", вот так:

var iEra;
for(iEra = 1; iEra <= li.length; iEra++) {
    parentOfli.append('<li class=" + iEra + "></li>');
}

Таким образом, я бы добавил, что мои классы 1-x добавлены очень хорошо.Проблема в том, что эти объекты li уже генерируются где-то еще.

Надеюсь, я полностью объяснил себя;если нет, пожалуйста, дайте мне знать об этом!Живой пример: http://jsfiddle.net/c3cXB/9/

Ответы [ 3 ]

2 голосов
/ 31 августа 2011

Имена классов не могут быть числом.

Вот тот, который работает: http://jsfiddle.net/c3cXB/10/

var li = $('ul.portfolio-excerpt').find('li');

var iEra, thumbLi = $('.thumbs ul li');
for (iEra = 1; iEra <= li.length; iEra++) {
    thumbLi.eq(iEra).addClass('class'+iEra);
}
0 голосов
/ 31 августа 2011

Я не уверен, что не так с вашим примером, мне пришлось изменить css на 'li.thumbs', чтобы убедиться, что работает следующее:

var $thumbLi = $('.thumbs ul li')
$('ul.portfolio-excerpt li:lt(' + $thumbLi.length + ')').addClass('thumbs');

См. Также http://api.jquery.com/lt-selector/

0 голосов
/ 31 августа 2011

Если вам действительно нужен цикл

$('.thumbs ul li').each(function(index) {
    $(this).addClass(iEra);
}

Или вот так, если вы просто хотите добавить класс ко всем Li

$('.thumbs ul li').addClass(iEra);
...