我想知道是否可以在这段代码中添加某种Nth Child?
$(function() {
var count = $(".parent a").length;
$(".parent div").width(function(){
return ($(".parent").width()/count)-5;
}).css("margin-right","5px");
});
我想要的是让最后一个div忽略margin-right
这可能吗?
答案 0 :(得分:1)
通常,您可以使用jQuery选择器,例如:last
,:last-child
,:last-of-type
,并考虑您不想要一个元素:not
。
但是,您在这里遇到的问题更多地与您何时以及如何进行宽度计算和应用CSS有关。
我会将其分解为几个步骤,首先进行宽度计算:
var count = $(".parent a").length;
$(".parent div").width(function(){
return ($(".parent").width()/count)-5;
});
接下来将右边距应用于 last div:
以外的所有边距$(".parent div:not(:last)").css("margin-right","5px");
这几乎让我们在那里,最后一点只是填补剩下的小差距:
$(".parent div:last").width(function() {
return $(".parent div:last").width() + 5;
});
这应该做你想要的。你可以在这里看到一个有效的例子 - http://jsfiddle.net/jUU86/3/。我可能会用一个变量替换边距大小,这样你就不必更换多个位置了。
您可以阅读有关此处使用的选择器的更多信息:
答案 1 :(得分:1)
:last-of-type
似乎就是你所需要的。我比:last
和:last-child
更喜欢这个,因为你更有可能想要最后一个类型(一个div),而不是最后一个孩子。
$(function () {
var count = $(".parent a").length;
$(".parent div").width(function () {
return ($(".parent").width() / count) - 5;
});
$(".parent div:not(:last-of-type)").css("margin-right", "5px");
});
答案 2 :(得分:0)
您可以将其添加到奇数/偶数上:count%2