Wie kann ich erfahren, wie jQuery-Selektoren hinter den Kulissen funktionieren?

Lesezeit: 2 Minuten

Wie kann ich erfahren wie jQuery Selektoren hinter den Kulissen funktionieren
Dorsey

Zum Beispiel, wenn wir verwenden $('div span')wie führt jQuery eine solche Suche für uns durch?

Sucht es nach dem span Element zuerst oder das div?

Es scheint, dass die offizielle Seite von jQuery keine Erklärung zu diesen Dingen hat; Es zeigt uns nur, welche Funktionen über die API verfügbar sind.

Ich möchte wissen, wie jeder Selektor vom Typ jQuery implementiert wird, damit ich den besten Selektor auswählen kann.

Wisst ihr wo ich solche Infos bekommen kann?

  • Die definitive Antwort ist hier: github.com/jquery/jquery

    – JJJ

    24. Juli 2012 um 13:18 Uhr

  • Überprüfen Sie den jQueru-Quellcode code.jquery.com/jquery-latest.js

    – Schju

    24. Juli 2012 um 13:19 Uhr


  • Und im Falle bestimmter Selektoren ist die endgültige Antwort oft hier: github.com/jquery/sizzle

    – James Allardice

    24. Juli 2012 um 13:19 Uhr

  • Wenn Sie andererseits Ihre Selektoren danach auswählen, welcher die Suche am effizientesten durchführt, führen Sie wahrscheinlich eine völlig irrelevante Mikrooptimierung durch.

    – JJJ

    24. Juli 2012 um 13:20 Uhr

1647137468 266 Wie kann ich erfahren wie jQuery Selektoren hinter den Kulissen funktionieren
Blazemonger

Im Großen und Ganzen, was Sie wissen müssen:

  1. jQuery liest Selektoren von rechts nach links.
  2. Die Verwendung einer genauen ID ist am schnellsten, gefolgt von der Verwendung eines genauen Tag-Namens, da sie optimierte JavaScript-native Methoden verwenden.
  3. Native CSS-Selektoren wie :first-child sind schneller als jQuery-Selektoren wie :first.

Sie können auch die lesen offizielle Sizzle-Dokumentationaber es geht nicht wirklich auf Optimierungstechniken ein.

Es sucht nach der span Elemente zuerst. Es analysiert den Selektor wie folgt:

  1. Jedes Element mit tagName = span
  2. Einen Vorfahren mit tagName = div haben

Für den ersten Teil kann es die verwenden getElementsByTagName Methode, um alle zu finden span Elemente, dann muss es die Vorfahren der einzelnen Elemente durchlaufen, um danach zu suchen div Elemente.

Am einfachsten wäre es, direkt von der Quelle zu lesen. Laden Sie die uncompresserd-Quelle von der jquery-Site herunter und lesen Sie aus der Rohquelle, was sie tut und in welcher Reihenfolge.

http://jquery.com/download/

Wie kann ich erfahren wie jQuery Selektoren hinter den Kulissen funktionieren
Curtis

Wie @Juhana kommentiert hat, wenn Sie wissen möchten, welche spezifischen Methoden jQuery verwendet, um Objekte basierend auf seinen Selektoren auszuwählen, schauen Sie sich das Github-Repository an:

https://github.com/jquery/jquery/

Sehen Sie sich alternativ den Quellcode an, der im unkomprimierten jQuery-Download verfügbar ist:

http://jquery.com/download/

Wenn Sie nur wissen möchten, welche verschiedenen Selektoren für Sie verfügbar sind, bietet jQuery hier eine Liste davon:

http://api.jquery.com/category/selectors/

1647137470 897 Wie kann ich erfahren wie jQuery Selektoren hinter den Kulissen funktionieren
Alnitak

Sie werden von rechts nach links analysiert.

Sehen http://csswizardry.com/2011/09/writing-efficient-css-selectors/ und Warum gleichen Browser CSS-Selektoren von rechts nach links ab?

995650cookie-checkWie kann ich erfahren, wie jQuery-Selektoren hinter den Kulissen funktionieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy