Nous donnons d'abord le code HTML suivant :
<p id="parent" class="parent"> <p class="child"> child1 </p> <p class="child"> child2 </p> </p> <p id="parent1" class="parent"> <p class="child"> child1 </p> <p class="child"> child2 </p> </p>
Méthode d'appel 1 : Le deuxième paramètre contexte est l'élément DOM
var doms=$(".child",$("#parent")[0]); console.log(doms);
A ce moment le deuxième paramètre est Objet DOM, print [p.child, p.child, prevObject : jQuery.fn.init[1], contexte : p#parent, sélecteur : ".child"]
Méthode d'appel 2 : Le deuxième paramètre de contexte est l'objet jQuery
var doms=$(".child",$($("#parent")[0])); console.log(doms);
A ce moment, le résultat de l'impression est le même que le premier cas ci-dessus, [p.child, p.child, prevObject : jQuery .fn.init[1], contexte : p#parent, sélecteur : ".child"]
Méthode d'appel 3 : Le deuxième paramètre est un tableau DOM
var doms=$(".child",[document.getElementById("#parent"),document.getElementById("#parent1")]) console.log(doms);
Méthode d'appel 4 : Le deuxième paramètre est un tableau d'objets jQuery
var doms=$(".child",$(".parent")) console.log(doms);
Le résultat de cette méthode est exactement le même que la troisième méthode !
Appel de la méthode 5 : Le paramètre passé est une fonction, qui va Appelez
$(function() { console.log("dom ready"); })
lorsque la fonction ready est appelée. Nous analysons maintenant ces situations à partir du code source :
Si le DOM est passé dans
else if ( selector.nodeType ) { this.context = this[0] = selector; this.length = 1; return this; // HANDLE: $(function) // Shortcut for document ready }
if ( selector.selector !== undefined ) { this.selector = selector.selector; this.context = selector.context; }
else if ( jQuery.isFunction( selector ) ) { return typeof rootjQuery.ready !== "undefined" ? rootjQuery.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); }
Si un tableau DOM ou un objet jQuery est passé
return jQuery.makeArray( selector, this );
var $doms=$([document.getElementById('ql'),document.getElementById('fkl')]); //把上面的DOM数组封装到新创建的jQuery对象上 console.log($doms);
else if ( !context || context.jquery ) { return ( context || rootjQuery ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); }
var doms=$(".child",$(".parent")) ; //这时候我们会选择class为parent元素下的所有的class为child的元素集合 //作为jQuery对象返回 console.log(doms);
var doms=$(".child",$(".parent")) console.log(doms);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!