2011-08-31 215 views
0

我有一个for循环非常简单的jQuery中添加类:通过for循环

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

是一个可变的目标$(“ul.class礼”)的对象。 iEra是计数器变量,应该从1开始,直到出现对象的数量为li

主要问题是函数addClass根本没有发生。但是,如果我将其替换为,例如,警报(iEra);,我会得到我的1-x警报。

我知道我可以修改我的for循环是一个“构造”,就像这样:

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

这样,我会得到我的班1-X添加就好了。问题是,那些li对象已经在其他地方生成了。

我希望我彻底解释一下自己;如果没有,请让我知道! 活生生的例子:http://jsfiddle.net/c3cXB/9/

回答

2

类名的不能是一个数字。

这里是一个工程: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

哦,男人,我很愚蠢。我其实可以添加数字类,因为它在追加整个元素时起作用。谢谢! – cr0z3r

0

如果你真的需要一个循环

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

还是这样,如果你只是想添加一个类所有的李

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

我不知道什么地方错了你的榜样,我不得不改变CSS来“li.thumbs”以查看以下工作:

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

另请参见http://api.jquery.com/lt-selector/