Heim Web-Frontend js-Tutorial jQuery-Konstruktor-Init-Parameteranalysis_jquery

jQuery-Konstruktor-Init-Parameteranalysis_jquery

May 16, 2016 pm 03:59 PM
jquery 构造函数

In meinem letzten Aufsatz habe ich den Konstruktor von jQuery analysiert. Es gibt eine Prototyp-Methode init im jQuery-Objekt, die der eigentliche Konstruktor ist. Das Prototyp-Objekt von init unterhält eine Referenzbeziehung zum Prototyp-Objekt von jQuery Die Instanz kann die Prototypmethoden von jQuery normal aufrufen, als wäre sie eine Instanz von jQuery. Werfen wir einen Blick darauf, wie der Konstruktor init hinter den Kulissen geschrieben ist:

init: function( selector, context, rootjQuery ) {

...

}

Nach dem Login kopieren

Sie können sehen, dass diese Methode 3 Parameter akzeptiert, die ersten beiden Parameter werden von der jQuery-Methode übergeben

var jQuery = function( selector, context ) {

// The jQuery object is actually just the init constructor 'enhanced'

return new jQuery.fn.init( selector, context, rootjQuery );

},

Nach dem Login kopieren

Selektor kann im Prinzip jeden Wert eingeben, aber nicht alle Werte sind gültig. Nur undefinierte DOM-Elemente, Zeichenfolgen, Funktionen, jQuery-Objekte und gewöhnliche JavaScript-Objekte sind normalerweise ausgefüllt, aber nein Wenn Sie

nicht ausfüllen, wird ein Fehler gemeldet

Code kopieren Der Code lautet wie folgt:

console.log($());
//[Konstruktor: Funktion, Init: Funktion, Selektor: "", jquery: "1.7.1", Größe: Funktion…]

Der Kontext kann als Ausführungskontext oder Ausführungsbereich oder in einem der DOM-Elemente, jQuery-Objekte und gewöhnlichen JavaScript-Objekte übergeben werden

Parameter rootjQuery: jQuery-Objekt, das das Dokumentobjekt enthält, wird verwendet, wenn document.getElementById() nicht gefunden werden kann, der Selektor ein Selektorausdruck ist und kein Kontext angegeben ist und der Selektor eine Funktion ist, es ist tatsächlich $(document).

Das Folgende ist in 12 Situationen unterteilt und wird nacheinander nach verschiedenen Parametern besprochen

1.selector kann in false konvertiert werden

// Handle $(""), $(null), or $(undefined)

if ( !selector ) {

return this;

}

Nach dem Login kopieren

Die Kommentare im Quellcode wurden sehr klar geschrieben. In diesen drei Situationen kehren Sie direkt ohne Verarbeitung zurück

2. Der Parameterselektor ist ein DOM-Element

Zum Beispiel: $(document)

// Handle $(DOMElement)

if ( selector.nodeType ) {

this.context = this[0] = selector;

this.length = 1;

return this;

}

Nach dem Login kopieren

Solange es sich um ein DOM-Element handelt, muss es einen Knotentyp haben. Anschließend wird dieser Knoten in das erste Element des JQuery-Objekts umgewandelt und dem Kontext zugewiesen. Das Längenattribut ist das Prototypattribut von JQuery und hat standardmäßig den Wert 0

// Die Standardlänge eines jQuery-Objekts beträgt 0

Länge: 0,
Nachdem hier ein Element vorhanden ist, ändern Sie das Längenattribut auf 1. Die Rückgabe dieser Operation macht das Ergebnis der Funktionsausführung weiterhin zu einem jQuery-Objekt, sodass Kettenaufrufe wie $(document).each() implementiert werden können. Das erhaltene endgültige Objekt ähnelt {0:document,context:document,length:1...}. Tatsächlich werden alle Situationen zu Objekten in dieser Form, mit Ausnahme der jQuery-Prototypeigenschaften und -Methoden nach arabischen Ziffern geordnet, sodass wir die Form $(selector)[0] anstelle von $(selector).get(0) verwenden können, um das DOM-Objekt zu erhalten. Zum Beispiel:

<!doctype html>

<html>

  <head>

   <title></title>

  </head>

  <body>

    <div></div>

    <div></div>

    <div></div>

  </body>

  <script src='jquery-1.7.1.js'></script>

  <script>

   console.log($('div'));

/*[div, div, div, prevObject: jQuery.fn.jQuery.init[1], context: document, selector: "div", constructor: function, init: function…]

0: div
1: div
2: div
context: document
length: 3
prevObject: jQuery.fn.jQuery.init[1]__proto__: jQuery[0]
selector: "div"
.
*/
  </script>

</html>


Nach dem Login kopieren

3. Der Parameter ist die spezielle Zeichenfolge „body“

Da es in einem Dokumentobjekt nur ein Körperelement gibt, wird es separat zur Verarbeitung aufgeführt

// The body element only exists once, optimize finding it

if ( selector === "body" && !context && document.body ) {

this.context = document;

this[0] = document.body;

this.selector = selector;

this.length = 1;

return this;

}

Nach dem Login kopieren

Hier gibt es drei Bedingungen, die gleichzeitig erfüllt sein müssen. Die zweite Bedingung, dass es keinen Kontext geben darf, ist ebenfalls nicht ganz klar von dieser Situation „ignoriert“ werden

 console.log($('body',document));

 /*

 jQuery.fn.jQuery.init[1]

0: body

context: document

length: 1

prevObject: jQuery.fn.jQuery.init[1]

selector: "body"

__proto__: jQuery[0]

*/

Nach dem Login kopieren
Obwohl das Ergebnis das gleiche ist wie $('body'), wird es als zwei Situationen behandelt. Dies liegt möglicherweise daran, dass body nur einen Kontext hat und nur ein Dokument sein kann. Andernfalls besteht keine Notwendigkeit, es hinzuzufügen. Sie müssen beurteilen, ob der Kontext ein Dokument ist. Die dritte Bedingung besteht darin, sicherzustellen, dass document.body vorhanden sein muss. Unter welchen Umständen sind die ersten beiden Bedingungen erfüllt, aber document.body existiert nicht? Erstens ist dies ein Fehler, den Anfänger häufig machen, wenn der JS-Code vor dem HTML-Code geladen wird. Normalerweise müssen wir Folgendes schreiben:

$(function(){...})

oder

$(document).ready(function(){...})
Tatsächlich sind diese beiden gleich und rufen dieselbe Methode auf. Das DOM lädt diesen Teil und analysiert ihn später. Dazu können wir einen Test-HTML-Code wie folgt erstellen:

<!doctype html>
 
<html>
 
  <head>
 
   <title></title>
 
    <script src='jquery-1.7.1.js'></script>
 
   <script>
 
       $('body')
 
  </script>
 
  </head>
 
  <body>
 
    <div></div>
 
    <div></div>
 
    <div></div>
 
  </body>
 
</html>
Nach dem Login kopieren
Geben Sie dann den Selektor, den Kontext und den document.body im jQuery-Quellcode aus


console.log(selector+context+document.body);

// The body element only exists once, optimize finding it

if ( selector === "body" && !context && document.body ) {

this.context = document;

this[0] = document.body;

this.selector = selector;

this.length = 1;

return this;

}

Nach dem Login kopieren
Obwohl wir nur eines geschrieben haben, wurde es tatsächlich viermal ausgeführt. Das letzte Mal war das Ergebnis, nachdem wir es aufgerufen hatten, die ersten beiden sind zufrieden, aber das letzte ist null . Denken Sie daran, dass in der ersten jQuery-Gesamtarchitektur undefiniert umgeschrieben wird. Wird document.body also als null umgeschrieben? Wenn ich versuche, den Code zu ändern, wird anscheinend ein Fehler gemeldet. Dann soll diese Bedingung die Ausführung verhindern, ohne den HTML-Code zu laden

Der vierte Typ sind andere Zeichenfolgen als die oben genannten Zeichenfolgen. Wir werden im nächsten Artikel auf weitere Situationen eingehen.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ausführliche Erläuterung der jQuery-Referenzmethoden: Kurzanleitung Ausführliche Erläuterung der jQuery-Referenzmethoden: Kurzanleitung Feb 27, 2024 pm 06:45 PM

Detaillierte Erläuterung der jQuery-Referenzmethode: Kurzanleitung jQuery ist eine beliebte JavaScript-Bibliothek, die häufig in der Website-Entwicklung verwendet wird. Sie vereinfacht die JavaScript-Programmierung und bietet Entwicklern umfangreiche Funktionen und Features. In diesem Artikel wird die Referenzmethode von jQuery ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern einen schnellen Einstieg zu erleichtern. Einführung in jQuery Zuerst müssen wir die jQuery-Bibliothek in die HTML-Datei einführen. Es kann über einen CDN-Link eingeführt oder heruntergeladen werden

Wie verwende ich die PUT-Anfragemethode in jQuery? Wie verwende ich die PUT-Anfragemethode in jQuery? Feb 28, 2024 pm 03:12 PM

Wie verwende ich die PUT-Anfragemethode in jQuery? In jQuery ähnelt die Methode zum Senden einer PUT-Anfrage dem Senden anderer Arten von Anfragen, Sie müssen jedoch auf einige Details und Parametereinstellungen achten. PUT-Anfragen werden normalerweise zum Aktualisieren von Ressourcen verwendet, beispielsweise zum Aktualisieren von Daten in einer Datenbank oder zum Aktualisieren von Dateien auf dem Server. Das Folgende ist ein spezifisches Codebeispiel, das die PUT-Anforderungsmethode in jQuery verwendet. Stellen Sie zunächst sicher, dass Sie die jQuery-Bibliotheksdatei einschließen. Anschließend können Sie eine PUT-Anfrage senden über: $.ajax({u

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Wie entferne ich das Höhenattribut eines Elements mit jQuery? Feb 28, 2024 am 08:39 AM

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Bei der Front-End-Entwicklung müssen wir häufig die Höhenattribute von Elementen manipulieren. Manchmal müssen wir möglicherweise die Höhe eines Elements dynamisch ändern, und manchmal müssen wir das Höhenattribut eines Elements entfernen. In diesem Artikel wird erläutert, wie Sie mit jQuery das Höhenattribut eines Elements entfernen, und es werden spezifische Codebeispiele bereitgestellt. Bevor wir jQuery zum Betreiben des Höhenattributs verwenden, müssen wir zunächst das Höhenattribut in CSS verstehen. Das Höhenattribut wird verwendet, um die Höhe eines Elements festzulegen

jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite Feb 28, 2024 pm 09:06 PM

Titel: jQuery-Tipps: Ändern Sie schnell den Text aller Tags auf der Seite. In der Webentwicklung müssen wir häufig Elemente auf der Seite ändern und bedienen. Wenn Sie jQuery verwenden, müssen Sie manchmal den Textinhalt aller a-Tags auf der Seite gleichzeitig ändern, was Zeit und Energie sparen kann. Im Folgenden wird erläutert, wie Sie mit jQuery den Text aller Tags auf der Seite schnell ändern können, und es werden spezifische Codebeispiele angegeben. Zuerst müssen wir die jQuery-Bibliotheksdatei einführen und sicherstellen, dass der folgende Code in die Seite eingefügt wird: &lt

Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Feb 28, 2024 pm 05:42 PM

Titel: Verwenden Sie jQuery, um den Textinhalt aller Tags zu ändern. jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur Verarbeitung von DOM-Operationen verwendet wird. Bei der Webentwicklung müssen wir häufig den Textinhalt des Link-Tags (eines Tags) auf der Seite ändern. In diesem Artikel wird erläutert, wie Sie mit jQuery dieses Ziel erreichen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die jQuery-Bibliothek in die Seite einführen. Fügen Sie den folgenden Code in die HTML-Datei ein:

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Feb 29, 2024 am 09:03 AM

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wenn Sie jQuery zum Betreiben von DOM-Elementen verwenden, stoßen Sie häufig auf Situationen, in denen Sie feststellen müssen, ob ein Element ein bestimmtes Attribut hat. In diesem Fall können wir diese Funktion einfach mit Hilfe der von jQuery bereitgestellten Methoden implementieren. Im Folgenden werden zwei häufig verwendete Methoden vorgestellt, um festzustellen, ob ein jQuery-Element über bestimmte Attribute verfügt, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die Methode attr() und den Operator typeof //, um zu bestimmen, ob das Element ein bestimmtes Attribut hat

Verstehen Sie die Rolle und Anwendungsszenarien von eq in jQuery Verstehen Sie die Rolle und Anwendungsszenarien von eq in jQuery Feb 28, 2024 pm 01:15 PM

jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur DOM-Manipulation und Ereignisbehandlung in Webseiten verwendet wird. In jQuery wird die Methode eq() verwendet, um Elemente an einer bestimmten Indexposition auszuwählen. Die spezifischen Verwendungs- und Anwendungsszenarien sind wie folgt. In jQuery wählt die Methode eq() das Element an einer angegebenen Indexposition aus. Indexpositionen beginnen bei 0 zu zählen, d. h. der Index des ersten Elements ist 0, der Index des zweiten Elements ist 1 und so weiter. Die Syntax der eq()-Methode lautet wie folgt: $("s

Zusammenfassung häufig verwendeter Dateioperationsfunktionen in PHP Zusammenfassung häufig verwendeter Dateioperationsfunktionen in PHP Apr 03, 2024 pm 02:52 PM

Parameter 1:basename()2:copy()3:dirname()4:disk_free_space()5:disk_total_space()6:file_exists()7:file_get_contents()8:file_put_contents()9:filesize()10:filetype( )11:glob()12:is_dir()13:is_writable()14:mkdir()15:move_uploaded_file()16:parse_ini_file()17:

See all articles