jQuery:计算元素并使用元素编号作为CSS类

时间:2012-07-03 12:43:54

标签: jquery css count caption

我有一个jquery脚本来生成图像标题。 但是现在我想用标题计算元素,并将相应的数字作为类添加到图像类中。 我知道如何计算(.length)但我如何使用每个元素中的适当数字?

http://jsbin.com/ugemih/6/edit#javascript,html,live

BR

4 个答案:

答案 0 :(得分:5)

将变量传递给传递给each()的函数,它将保存当前元素的数字:

$('.foo').each(function (i) {
    $(this).addClass('foo-' + i);
});

答案 1 :(得分:0)

可以通过这种方式动态修改类名。

$('.test').each(function (e) { 
    $(this).addClass('test_' + e); 
}); 

答案 2 :(得分:0)

如果您只想设置元素的类,那么使用而不使用jQuery非常容易!快速使用jQuery .attr()函数将允许您更改任何类,即类。

$("[div to change]").attr("class", "[class_name]" + [number]);

我已将class设置为[class_name][1,2,3...]。因此,如果[class_name]hello[number]5,则会将class设置为hello5

或者,如果您想要向对象添加class(保持任意位置样式),您可以使用jQuery的.addClass()函数:

$("[div to change]").addClass("[class_name]" + [number]);

这将为您的对象添加一个类似名称的class

答案 3 :(得分:0)

你有没有理由不能使用CSS? 有一个伪选择器,nth-child。

a:nth-child(1){color: #123;}
a:nth-child(2){color: #456;}
a:nth-child(3){color: #789;}

等等。

使用Selectivizr将使这在IE6中工作为8.之后,支持nth-child。 这意味着您现在可以开始编写更智能,基于标准的CSS,并且脚本将使其在IE中运行。

如果你愿意,你可以在javascript中完成所有工作,但你应该使用css来应用样式,如果你可以这样做而不是使用javascript添加类,那么你的网站将更有效,更容易维护。