这是一个快速的。我正在努力为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>
使用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");
});
我的javascript / jquery正确地完成了这个目标,但它看起来效率很低。我相信有更优雅的方式来完成这项工作......甚至可以在一行中完成。
有人可以帮忙吗?谢谢!
答案 0 :(得分:5)
我认为:not
需要:last-child
:
$('.ganttview-block-container')
.addClass('Opacity')
.filter(':not(:last-child)')
.addClass('Absolute');
答案 1 :(得分:0)
为什么不做呢
$("div.ganttview-blocks div.ganttview-block-container:last").each( ... )
应该为您提供后续元素。