Maison interface Web js tutoriel Paramètre d'initialisation du constructeur jQuery Analysis_jquery

Paramètre d'initialisation du constructeur jQuery Analysis_jquery

May 16, 2016 pm 03:59 PM
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 ) {

...

}

Copier après la connexion

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 );

},

Copier après la connexion

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

Copier le code Le code est le suivant :

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;

}

Copier après la connexion

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;

}

Copier après la connexion

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>


Copier après la connexion

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;

}

Copier après la connexion

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]

*/

Copier après la connexion

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>
Copier après la connexion

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;

}

Copier après la connexion

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.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD
Musée à deux points: toutes les expositions et où les trouver
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Explication détaillée des méthodes de référence jQuery : guide de démarrage rapide Explication détaillée des méthodes de référence jQuery : guide de démarrage rapide Feb 27, 2024 pm 06:45 PM

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 ? Comment supprimer l'attribut height d'un élément avec jQuery ? Feb 28, 2024 am 08:39 AM

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 ? Comment utiliser la méthode de requête PUT dans jQuery ? Feb 28, 2024 pm 03:12 PM

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

Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Feb 28, 2024 pm 09:06 PM

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 : &lt

Utilisez jQuery pour modifier le contenu textuel de toutes les balises Utilisez jQuery pour modifier le contenu textuel de toutes les balises Feb 28, 2024 pm 05:42 PM

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 ? Comment savoir si un élément jQuery possède un attribut spécifique ? Feb 29, 2024 am 09:03 AM

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

Comprendre le rôle et les scénarios d'application de eq dans jQuery Comprendre le rôle et les scénarios d'application de eq dans jQuery Feb 28, 2024 pm 01:15 PM

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

Résumé des fonctions d'opération de fichiers couramment utilisées en PHP Résumé des fonctions d'opération de fichiers couramment utilisées en PHP Apr 03, 2024 pm 02:52 PM

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:

See all articles