Javascript 你能给JS添加第n个子元素吗?

Javascript 你能给JS添加第n个子元素吗?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我想知道是否有可能在这段代码中添加第n个子元素 $(function() { var count = $(".parent a").length; $(".parent div").width(function(){ return ($(".parent").width()/count)-5; }).css("margin-right","5px"); }); 我希望最后一个div忽略右边的边距 这可能吗?您可以将其添加到奇数/偶数:计数%2通常

我想知道是否有可能在这段代码中添加第n个子元素

  $(function() {
    var count = $(".parent a").length;
    $(".parent div").width(function(){
        return ($(".parent").width()/count)-5;
    }).css("margin-right","5px");
  });
我希望最后一个div忽略右边的
边距


这可能吗?

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

通常您可以使用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:last").width(function() {
    return $(".parent div:last").width() + 5;
});
这应该是你想要的。您可以在这里看到一个工作示例-。我可能也会用一个变量替换边距大小,这样你就不必在更改它时替换多个位置

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

    • 似乎正是你所需要的。我更喜欢这个,而不是
      :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");
      });
      

      很高兴有办法,但这对我来说毫无意义哈哈,我只在中间阶段做HTML和CSSlevel@Adsy请参阅我的编辑。这样行吗?另外,尽量说得更具体一些。什么不起作用?脚本仍然起作用,但边距只是从我的所有div中删除,而不仅仅是最后一个div define
      停止了它的工作
      ,这个slighlty-modified示例正如我所期望的那样起作用-,告诉我们您的HTML可能会使事情变得更简单。很难解释。这是我和你的JS的代码,这是JS工作时的样子,当你应用CSS时,有点不对劲,宽度计算的方式,这似乎工作-太棒了!这很好用。我真的很感谢@LloydYou可能想要更新您原来的post Lloyd,以同意您最新的小提琴。
      $(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");
      });