通过for循环添加类

发布于 2024-12-02 14:19:28 字数 722 浏览 2 评论 0原文

我在 jQuery 中有一个非常简单的 for 循环:

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 循环修改为“构造函数”,如下所示:

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

这样我就可以很好地添加我的类 1-x 。问题是,那些 li 对象已经在其他地方生成了。

我希望我已经彻底解释了自己;如果没有,请告诉我! 实例:http://jsfiddle.net/c3cXB/9/

I have a very simple for-loop in jQuery:

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

li is a variable targeting $('ul.class li') objects. iEra is the counter variable that should start from 1 up to the number of li objects present.

The main issue is that the function addClass is not happening at all. However if I replace it by, for example, alert(iEra);, I will get my 1-x alerts.

I know I could modify my for-loop to be a "constructor", like so:

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

That way I would get my classes 1-x added just fine. Problem is, those li objects are already being generated somewhere else.

I hope I explained myself thoroughly; if not, please let me know so!
Live example: http://jsfiddle.net/c3cXB/9/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

单身情人 2024-12-09 14:19:28

类名称不能是数字。

这是一个有效的方法: 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);
}

Class names cannot be a number.

Here is one that works: 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);
}
_失温 2024-12-09 14:19:28

如果你确实需要一个循环

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

或者这样,如果你只是想给所有的Li添加一个类

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

If you really need a loop

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

Or this way, if you just want to add a class to all of the Li

$('.thumbs ul li').addClass(iEra);
活泼老夫 2024-12-09 14:19:28

我不确定您的示例有什么问题,我必须将 css 更改为“li.thumbs”才能看到以下内容是否有效:

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

另请参阅

I'm not sure what's wrong with your example, I had to change css to 'li.thumbs' to see the following is working:

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

See also http://api.jquery.com/lt-selector/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文