将内联样式添加到可见的最后 Child
Add Inline Style to Visible Last Child
我正在使用:
$( ".scroll > *:visible:last" ).css( "margin-bottom", "0" );
以所有可见的 children 为目标,并将 "margin-bottom: 0"(内联)添加到最后一个可见的 child,它会产生以下结果:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div style="margin-bottom: 0px;">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
这符合预期并且在 class "scroll" 是最后一个可见的 child 之前工作正常,如下所示:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
现在可以像这样添加内联样式:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p style="margin-bottom: 0px;">fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
我想我会这样:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll" style="margin-bottom: 0px;">
<p style="margin-bottom: 0px;">fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
我错过了什么?
你应该使用 last-of-type
而不是 last
The :last-of-type selector matches every element that is the last
child, of a particular type, of its parent.
$(".scroll > *:visible:last-of-type").css("margin-bottom", "0");
.hide {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
我正在使用:
$( ".scroll > *:visible:last" ).css( "margin-bottom", "0" );
以所有可见的 children 为目标,并将 "margin-bottom: 0"(内联)添加到最后一个可见的 child,它会产生以下结果:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div style="margin-bottom: 0px;">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
这符合预期并且在 class "scroll" 是最后一个可见的 child 之前工作正常,如下所示:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
现在可以像这样添加内联样式:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p style="margin-bottom: 0px;">fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
我想我会这样:
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll" style="margin-bottom: 0px;">
<p style="margin-bottom: 0px;">fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>
我错过了什么?
你应该使用 last-of-type
而不是 last
The :last-of-type selector matches every element that is the last child, of a particular type, of its parent.
$(".scroll > *:visible:last-of-type").css("margin-bottom", "0");
.hide {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="scroll">
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<p>This is text...</p>
<div class="scroll">
<p>fsfdsfsdfsd</p>
</div>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
<p class="hide">This is text...</p>
</div>