コードは次のとおりです:
非表示: function() {
return showHide( this );
}、
function showHide( elements, show ) {var elem, display,
値 = [],
インデックス = 0,
長さ = 要素.長さ;
for ( ; インデックス
elem = 要素[インデックス];
if ( !elem.style ) {
続く;
}
値[インデックス] = jQuery._data( elem, "olddisplay" );
if (表示) {
// この要素のインライン表示をリセットして、
であるかどうかを確認します。
// カスケードルールによって隠蔽されているかどうか
if ( !values[index ] && elem.style.display === "none" ) {
elem.style.display = "";
}
// display: none でオーバーライドされた要素を設定します
// デフォルトのブラウザ スタイルに合わせてスタイルシート内で
// そのような要素の場合
if ( elem.style.display === "" && isHidden( elem ) ) {
値[インデックス] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
}
} else {
表示 = curCSS( elem, "表示" );
if ( !values[index ] && display !== "none" ) {
jQuery._data( elem, "olddisplay", display );
}
}
}
// 2 番目のループでほとんどの要素の表示を設定します
// 継続的なリフローを避けるため
for ( インデックス = 0; インデックス
elem = 要素[インデックス];
if ( !elem.style ) {
続く;
}
if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
elem.style.display = 表示 ?値[インデックス] || "" : "なし";
}
}
要素を返します。
}
上のページのコードから、このオブジェクトの数を取得するには、このオブジェクトの数が、dom オブジェクトではなく、jQuery のオブジェクトの数であるため、showHide 関数が取得されていることがわかります。 1 つの dom オブジェクト。
最後に見る$("p").bind() -- イベント
バインド: function( タイプ, データ, fn ) {
return this.on(types, null, data, fn );
}、
on: function( タイプ, セレクター, データ, fn, /*INTERNAL*/ one ) {
// コードのこの部分は省略されています
return this.each( function() {
jQuery.event.add(this、types、fn、data、selector );
});
}、
bind 関数は on 関数を呼び出し、on 関数は each 関数を通じて jQuery.event.add を実装します。したがって、jQuery.event.add( の this も dom オブジェクトです。したがって、イベントの this も dom オブジェクトです。
上記は、jQuery の this と $(this) についての私の個人的な理解です。間違いがある場合は、私に連絡するか、メッセージを残してください。