Heim >Web-Frontend >js-Tutorial >Der Unterschied zwischen dem JQuery-Selektor :last und :last-child

Der Unterschied zwischen dem JQuery-Selektor :last und :last-child

黄舟
黄舟Original
2017-06-23 15:08:202652Durchsuche

Heute habe ich $("ul li:last-child").offset().top geschrieben und einen Fehler gefunden, und $("ul li").last().offset() .top genau Das stimmt. Der Grund ist:
Beide Selektoren stimmen mit dem letzten Element in der Sammlung überein. Der Unterschied besteht darin, dass :last mit dem letzten Element in allen Sammlungen übereinstimmt. Und :last-child stimmt mit allen letzten untergeordneten Elementen in der Sammlung überein. :last gibt immer ein Element zurück, während :last-child möglicherweise einen Stapel von Elementen zurückgibt.
Das ist es!

:last Selects the last matched element.
Note that :last selects a single element by filtering the current jQuery collection and matching the last element within it.
Additional Notes:
Because :last is a jQuery extension and not part of the CSS specification, queries using 
:last cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. 
To achieve the best performance when using :last to select elements, first select the elements using a pure CSS selector, then use.filter(":last").

:last-child:

Wählt alle Elemente aus, die das letzte untergeordnete Element ihres übergeordneten Elements sind.

<div>
<span>John,</span>
<span>Karl,</span>
<span>Brandon,</span>
<span>Sam</span>
</div>
<div>
<span>Glen,</span>
<span>Tane,</span>
 
<span>Ralph,</span>
<span>David</span>
</div>
<script>
$("div span:last-child")
.css({color:"red", fontSize:"80%"})
.hover(function () {
$(this).addClass("solast");
}, function () {
$(this).removeClass("solast");
});

Beide Selektoren sind übereinstimmende Mengen. Das letzte Element in Der Unterschied besteht darin, dass :last mit dem letzten Element in allen Sätzen übereinstimmt. Und :last-child stimmt mit allen letzten untergeordneten Elementen in der Sammlung überein. :last gibt immer ein Element zurück, während :last-child möglicherweise einen Stapel von Elementen zurückgibt.

$('div p:last') wählt das letzte P-Element aus und hebt es hervor. Das Ergebnis ist wie folgt:

<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>

$('div p:last-child') Wählt alle p untergeordneten Elemente aus, die sich im letzten Div befinden, und markiert:

<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>
<div>
<p>Paragraph</p>
<p>Paragraph</p>
<p>Paragraph</p>
</div>

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen dem JQuery-Selektor :last und :last-child. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn