我正在使用jQuery来计算div,并且希望在计数20时添加一个类。 ie:divs 1-20是class =“box”,div 21 +是class =“box new”
这就是我所拥有的,但它为所有div添加了“新”类。
$(function() {
var divCount = $("#content").children(".box").length;
if (divCount > 20) {
$(".box").addClass("new");
}
});
答案 0 :(得分:7)
$(".box:gt(20)").addClass("new");
答案 1 :(得分:2)
只想指出你可以使用nth-child只使用CSS。当然,如果您使用该类进行定位,您仍然可能想要使用jQuery路径:
div.box:nth-child(n+21) {
... new styles go here
}
答案 2 :(得分:0)
这样的事情应该有效:
var i = 0;
$("#content").children(".box").each(function(i, k) {
if(++i > 20) $(k).addClass("new");
});
或
$("#content").children(".box").each(function(i, k) {
if($(k).is(":gt(20)")) $(k).addClass("new");
});
答案 3 :(得分:0)
考虑到您的代码如下所示: 如果有超过20个框,请使用类'box'将所有div添加为'new'。所以,所有框都被选中。
在这种情况下,我推荐使用:gt()
选择器:gt-selector - jQuery
因此:
$(function() {
$(".box:gt(20)").addClass("new");
});
如果您不确定使用哪个选择器,可以使用此备忘单:Oscar Otero jQuery Cheatsheet
答案 4 :(得分:0)
您的代码:
if(divCount> 20)
实际上正在检查一个条件是否真实,并为所有具有类.box
的元素添加了一个类“new”,因为当你有超过20个div时条件通过了测试。
你要做的是遍历元素并检查你的条件的真实性,如果它的索引高于20 - 1,则将新类应用于当前元素(计数从零开始,所以你的元素有一个索引19将是你的第20个元素。)
$(function() {
$.each($("#content").children(".box"), function(index, value){
if ( index - 1 > 20 ) {
$(this).addClass(".new");
}
});
});