如何在jQuery中选择最后一个子元素?
只选择最后一个子元素,而不是它的后代。
你也可以这样做:
<ul id="example">
<li>First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
</ul>
// possibility 1
$('#example li:last').val();
// possibility 2
$('#example').children().last()
// possibility 3
$('#example li:last-child').val();
为了性能表现:
$('#example').children().last()
或者,如果你想要一个具有特定类的最后一个子元素,就像上面所评论的那样。
$('#example').children('.test').last()
或者一个具有特定类的特定子元素
$('#example').children('li.test').last()
在jQuery 3.4.0版本中,以下选择器将被弃用::first,:last,:eq,:even,:odd,:lt和:gt。当我们移除Sizzle时,我们将用querySelectorAll包装一个小包装器来替换它,如果没有更大的选择器引擎,几乎不可能重新实现这些选择器。
我们认为这种权衡是值得的。请记住,我们仍然支持定位方法,例如.first,.last和.eq。使用定位方法可以完成任何您可以使用定位选择器完成的操作,而且它们的性能更好。
https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/
所以现在,您应该使用.first()
,.last()
(或不使用jQuery)。
$("div p:last-of-type").css("border", "3px solid red");
$("div span:last-of-type").css("border", "3px solid red");
<div id="example">
<p>This is paragraph 1</p>
<p>This is paragraph 2</p>
<span>This is paragraph 3</span>
<span>This is paragraph 4</span>
<p>This is paragraph 5</p>
</div>
大家好,请尝试这个属性
$( "p span" ).last().addClass( "highlight" );
谢谢
children().last()
和:last-child
不相等。在这个例子中是相同的,但想象一下你有两个列表(class="example"),然后尝试从两个列表中选择最后一个元素... - alekwisniachildren()
,会跳入 DOM 两次。选项1只跳入一次,但使用了自定义/jQuery 伪选择器:last
和:last-child
,由于它们已经存在了很长时间,所以它似乎是最快并且需要更少的计算时间来实现结果。 - Yoram de Langen$('#example').children().last()
对我来说运行良好。 - w.Daya