Paramètre d'initialisation du constructeur jQuery Analysis_jquery
Dans mon dernier essai, j'ai analysé le constructeur de jQuery. Il existe une méthode prototype init dans l'objet jQuery, qui est le véritable constructeur. L'objet prototype d'init maintient une relation de référence avec l'objet prototype de jQuery afin que init soit. L'instance peut appeler normalement les méthodes prototypes de jQuery, comme s'il s'agissait d'une instance de jQuery. Jetons un coup d'œil à la façon dont le constructeur init en coulisses est écrit :
init: function( selector, context, rootjQuery ) { ... }
Vous pouvez voir que cette méthode accepte 3 paramètres, les deux premiers paramètres sont passés par la méthode jQuery
var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); },
Le sélecteur peut en principe saisir n'importe quelle valeur, mais toutes les valeurs ne sont pas significatives. Seuls les éléments DOM, les chaînes, les fonctions, les objets jQuery et les objets JavaScript ordinaires sont valides. Ce paramètre est généralement renseigné mais non. une erreur sera signalée si vous ne le remplissez pas
console.log($());
//[constructeur : fonction, init : fonction, sélecteur : "", jquery : "1.7.1", taille : fonction…]
Le contexte peut être transmis en tant que contexte d'exécution ou portée d'exécution, ou il peut être transmis dans l'un des éléments DOM, des objets jQuery et des objets JavaScript ordinaires
Paramètre rootjQuery : objet jQuery contenant l'objet document, utilisé lorsque document.getElementById() ne parvient pas à trouver, le sélecteur est une expression de sélecteur et aucun contexte n'est spécifié, et le sélecteur est une fonction, il s'agit en fait de $(document).
Ce qui suit est divisé en 12 situations et discuté une à une selon différents paramètres
1.selector peut être converti en false
// Handle $(""), $(null), or $(undefined) if ( !selector ) { return this; }
Les commentaires dans le code source ont été rédigés très clairement. Dans ces trois situations, revenez directement sans aucun traitement
2. Le sélecteur de paramètres est un élément DOM
Par exemple : $(document)
// Handle $(DOMElement) if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; }
Tant qu'il s'agit d'un élément dom, il doit avoir un type de nœud, puis transformer ce nœud en premier élément de l'objet jquery et l'attribuer au contexte. L'attribut length est l'attribut prototype de jQuery et sa valeur par défaut est 0.
// La longueur par défaut d'un objet jQuery est 0
longueur : 0,
Une fois qu'il y a un élément ici, remplacez l'attribut length par 1. Le retour de cette opération fait que le résultat de l'exécution de la fonction reste un objet jQuery, de sorte que les appels en chaîne comme $(document).each() puissent être implémentés. L'objet final obtenu est similaire à {0:document,context:document,length:1....}. En fait, toutes les situations finiront par devenir des objets sous cette forme, à l'exception des propriétés et méthodes du prototype jQuery. disposés dans l'ordre par chiffres arabes, nous pouvons donc utiliser le formulaire $(selector)[0] au lieu de $(selector).get(0) pour obtenir l'objet DOM. Par exemple :
<!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>
3. Le paramètre est la chaîne spéciale "body"
Comme il n'y a qu'un seul élément body dans un objet document, il est répertorié séparément pour le traitement
// 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; }
Il y a ici trois conditions qui doivent être remplies en même temps. Je ne comprends pas très bien la deuxième condition selon laquelle il ne doit pas y avoir de contexte. Une méthode d'écriture apparemment normale telle que $('body',document) le sera également. être « ignoré » par cette situation »
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] */
Bien que le résultat soit le même que $('body'), il est traité comme deux situations. Cela peut être dû au fait que body n'a qu'un seul contexte et qu'il ne peut être qu'un document, il n'est pas nécessaire de l'ajouter. vous devez juger si le contexte est un document. La troisième condition est de garantir que document.body doit exister. Alors dans quelles circonstances les deux premières conditions seront-elles remplies mais document.body n'existe pas ? La première est que lorsque le code js est chargé avant le code html, c'est une erreur que font souvent les débutants. Habituellement on doit écrire :
.$(function(){...})
ou
$(document).ready(function(){...})
En fait, ces deux éléments sont identiques et appellent la même méthode. Le DOM chargera cette partie et l'analysera plus tard. Pour cela nous pouvons faire un code html de test comme suit :
<!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>
Ensuite, affichez le sélecteur, le contexte et le document.body dans le code source jQuery
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; }
Bien que nous n'en ayons écrit qu'un, il a en fait été exécuté quatre fois. Ce n'est que la dernière fois que nous l'avons appelé. Le dernier résultat était bodyundefinednull. À ce stade, les deux premiers sont satisfaits, mais le dernier est nul. . Rappelez-vous que dans la première architecture globale de jQuery, undefined sera réécrit, donc document.body sera-t-il réécrit comme null ? Lorsque j'essaie de modifier le code, une erreur sera signalée. Il semble que ce ne soit pas possible. Alors cette condition est d'empêcher l'exécution sans charger le html
.Le quatrième type concerne les chaînes autres que les situations de chaînes mentionnées ci-dessus. Nous laisserons plus de situations dans le prochain article.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Explication détaillée de la méthode de référence jQuery : Guide de démarrage rapide jQuery est une bibliothèque JavaScript populaire largement utilisée dans le développement de sites Web. Elle simplifie la programmation JavaScript et fournit aux développeurs des fonctions et fonctionnalités riches. Cet article présentera en détail la méthode de référence de jQuery et fournira des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement. Présentation de jQuery Tout d'abord, nous devons introduire la bibliothèque jQuery dans le fichier HTML. Il peut être introduit via un lien CDN ou téléchargé

Comment supprimer l'attribut height d'un élément avec jQuery ? Dans le développement front-end, nous rencontrons souvent le besoin de manipuler les attributs de hauteur des éléments. Parfois, nous pouvons avoir besoin de modifier dynamiquement la hauteur d'un élément, et parfois nous devons supprimer l'attribut height d'un élément. Cet article explique comment utiliser jQuery pour supprimer l'attribut height d'un élément et fournit des exemples de code spécifiques. Avant d'utiliser jQuery pour exploiter l'attribut height, nous devons d'abord comprendre l'attribut height en CSS. L'attribut height est utilisé pour définir la hauteur d'un élément

Comment utiliser la méthode de requête PUT dans jQuery ? Dans jQuery, la méthode d'envoi d'une requête PUT est similaire à l'envoi d'autres types de requêtes, mais vous devez faire attention à certains détails et paramètres. Les requêtes PUT sont généralement utilisées pour mettre à jour des ressources, comme la mise à jour de données dans une base de données ou la mise à jour de fichiers sur le serveur. Ce qui suit est un exemple de code spécifique utilisant la méthode de requête PUT dans jQuery. Tout d'abord, assurez-vous d'inclure le fichier de la bibliothèque jQuery, puis vous pourrez envoyer une requête PUT via : $.ajax({u

Titre : jQuery Astuces : Modifier rapidement le texte de toutes les balises a de la page En développement web, nous avons souvent besoin de modifier et d'exploiter des éléments de la page. Lorsque vous utilisez jQuery, vous devez parfois modifier le contenu textuel de toutes les balises de la page en même temps, ce qui peut économiser du temps et de l'énergie. Ce qui suit explique comment utiliser jQuery pour modifier rapidement le texte de toutes les balises a de la page et donne des exemples de code spécifiques. Tout d'abord, nous devons introduire le fichier de la bibliothèque jQuery et nous assurer que le code suivant est introduit dans la page : <

Titre : utilisez jQuery pour modifier le contenu textuel de toutes les balises. jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer les opérations DOM. En développement web, nous rencontrons souvent le besoin de modifier le contenu textuel de la balise de lien (une balise) sur la page. Cet article expliquera comment utiliser jQuery pour atteindre cet objectif et fournira des exemples de code spécifiques. Tout d’abord, nous devons introduire la bibliothèque jQuery dans la page. Ajoutez le code suivant dans le fichier HTML :

Comment savoir si un élément jQuery possède un attribut spécifique ? Lorsque vous utilisez jQuery pour exploiter des éléments DOM, vous rencontrez souvent des situations dans lesquelles vous devez déterminer si un élément possède un attribut spécifique. Dans ce cas, nous pouvons facilement implémenter cette fonction à l'aide des méthodes fournies par jQuery. Ce qui suit présentera deux méthodes couramment utilisées pour déterminer si un élément jQuery possède des attributs spécifiques et joindra des exemples de code spécifiques. Méthode 1 : utilisez la méthode attr() et l'opérateur typeof // pour déterminer si l'élément a un attribut spécifique

jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer la manipulation DOM et la gestion des événements dans les pages Web. Dans jQuery, la méthode eq() est utilisée pour sélectionner des éléments à une position d'index spécifiée. Les scénarios d'utilisation et d'application spécifiques sont les suivants. Dans jQuery, la méthode eq() sélectionne l'élément à une position d'index spécifiée. Les positions d'index commencent à compter à partir de 0, c'est-à-dire que l'index du premier élément est 0, l'index du deuxième élément est 1, et ainsi de suite. La syntaxe de la méthode eq() est la suivante : $("s

Exemple 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:
