0

我想知道是否可以在这段代码中添加某种 Nth Child?

  $(function() {
    var count = $(".parent a").length;
    $(".parent div").width(function(){
        return ($(".parent").width()/count)-5;
    }).css("margin-right","5px");
  });

我想要的是让最后一个 div 忽略margin-right

这可能吗?

4

3 回答 3

1

一般来说,您可以使用 jQuery 选择器,如:last, :last-child, :last-of-type, 并考虑到您想要一个元素:not

但是,这里的问题更多地与您何时以及如何进行宽度计算和应用 CSS 有关。

我会将其分解为几个步骤,首先进行宽度计算:

var count = $(".parent a").length;

$(".parent div").width(function(){
    return ($(".parent").width()/count)-5;
});

接下来将右边距应用于除最后一个div 之外的所有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/。我可能也会用变量替换边距大小,这样您就不必在更改时替换多个位置。

您可以阅读有关此处使用的选择器的更多信息:

于 2013-10-22T09:32:20.617 回答
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");
});
于 2013-10-22T09:32:21.860 回答
0

您可以将其添加到奇数/偶数上:count % 2

于 2013-10-22T09:31:58.420 回答