jQuery オブジェクトの初期化のためのパラメータ受け渡しメソッドには次のものが含まれます:
1.$(DOMElement)
2.$('
...
')、$('#id')、$('.class') は、最も一般的な形式のパラメータです。多くの場合、コンテキストを指定するために 2 番目のパラメーター context として渡されます。コンテキスト パラメーターは $(...)、DOMElement
です。
3.$(function() {}); <===> $(document).ready(function() { });
4.$({セレクター : '.class', コンテキスト : context}) <===> $('.class', context)
jQuery.fn = jQuery.prototype = {
コンストラクター: jQuery、
init: function(セレクター、コンテキスト、rootjQuery) {
var match、elem、ret、doc;
// パラメータ $("")、$(null)、$(unknown)、$(false) を処理し、直接 this を返します
if ( !selector ) {
これを返します;
}
// 渡されたパラメーターセレクターが DOM ノードの場合、コンテキストを selector
に設定します
If (selector.nodeType) {
This.context = this[0] = セレクター;
This.length = 1;
これを返します;
}
// HTML 文字列を処理します
// 受信セレクター パラメーターが文字列の場合、
if ( typeof selector === "string" ) {
If ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
// <> で開始および終了する文字列は HTML であると想定し、正規表現チェックをスキップします
match = [ null, セレクター, null ];
} else {
match = rquickExpr.exec( selector );
}
// HTML と一致するか、#id
にコンテキストが指定されていないことを確認します
If ( match && (match[1] || !context) ) {
// ハンドル: $(html) -> $(配列)
If (match[1]) {
context = jQuery の context インスタンス? context[0] : context;
doc = ( context && context.nodeType ? context.ownerDocument || context : document );
// スクリプトは後方互換性に対して true です
セレクター = jquery.parsehtml ([1] に一致、ドキュメント、true);
If ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
This.attr.call( セレクター, コンテキスト, true );
}
Return jQuery.merge( this, selector );
// ハンドル: $(#id)
} else {
elem = document.getElementById( match[2] );
// Blackberry 4.6 が戻ったときにキャッチするためにparentNodeをチェックします
// ドキュメント #6963
に存在しなくなったノード
If (elem && elem.parentNode) {
// IE と Opera が項目を返すケースを処理します
// ID ではなく名前で
if ( elem.id !== match[2] ) {
return rootjQuery.find( selector );
}
// それ以外の場合は、要素を jQuery オブジェクトに直接挿入します
this.length = 1;
this[0] = 要素;
}
this.context = ドキュメント;
this.selector = セレクター;
これを返します;
}
// ハンドル: $(expr, $(...))
else if ( !context || context.jquery ) {
return ( context || rootjQuery ).find( selector );
// ハンドル: $(expr, context)
// (これは $(context).find(expr)
と同等です
} else {
return this.constructor( context ).find( selector );
}
// ハンドル: $(関数)
// ドキュメント準備完了のショートカット
//selector が function の場合は $(document).ready(selector);
に相当します
else if ( jQuery.isFunction( selector ) ) {
return rootjQuery.ready( selector );
}
//selector パラメータが {selector:'#id', context:document} である場合、プロパティselector と context
が重なります。
if ( selector.selector !== 未定義 ) {
this.selector = selector.selector;
this.context = selector.context;
}
return jQuery.makeArray( selector, this );
}
};
以上が本書のすべての内容です。