选择div的最后一个子元素而不循环

Rob*_*ozo 2 javascript jquery

这是一个快速的.我正在努力为jquery编写选择器,因为我似乎过于依赖循环来完成任务.

在这个特定的例子中,我想添加"Absolute"类,除了父ganntview-blocks div中的最后一个之外,所有具有ganttview-block-container类的div.

HTML:

<div class='ganttview-blocks'>    
 <div class='ganttview-block-container'></div>
 <div class='ganttview-block-container'></div>
 <div class='ganttview-block-container'></div>    
</div>

<div class='ganttview-blocks'>    
 <div class='ganttview-block-container'></div>
 <div class='ganttview-block-container'></div>
 <div class='ganttview-block-container'></div> 
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$("div.ganttview-block-container").addClass("Absolute").addClass("Opacity");

$($("div.ganttview-blocks")).each(function () {
  var thisDiv = $(this);
  thisDiv.children("div.ganttview-block-container:last").removeClass("Absolute");    
});
Run Code Online (Sandbox Code Playgroud)

我的javascript/jquery正确地完成了这个目标,但它看起来效率很低.我相信有更优雅的方式来完成这项工作......甚至可能在一行中.

有人可以帮忙吗?谢谢!

lon*_*day 5

我认为你需要:not:last-child:

$('.ganttview-block-container')
  .addClass('Opacity')
  .filter(':not(:last-child)')
    .addClass('Absolute');
Run Code Online (Sandbox Code Playgroud)