ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery_jquery での end() と PushStack() の使用の概要

jQuery_jquery での end() と PushStack() の使用の概要

WBOY
WBOYオリジナル
2016-05-16 17:56:361034ブラウズ

しかし、独自の jQuery コードを作成する場合、pushStack() に注意を払ったり使用したりすることはほとんどありません。DOM トラバーサルを伴うプラグインを作成する必要がある場合、jQuery 内での PushStack が特に役立ちます。 () メソッドは、jQuery オブジェクト (jQuery によってカプセル化されており、jQuery オブジェクトでもあります) の prevObject プロパティを変更することによって、チェーン呼び出しの前のメソッドによって返された DOM 結果セットを「追跡」します。これが「追跡される」と言われる理由は、次のとおりです。実際に格納されるのは Reference です)。チェーン内で end() メソッドを呼び出すと、現在の jQuery オブジェクトの prevObject が内部的に返されます。詳細については、ソース コードを参照してください。ここに例があります:

html:


私は祖父母です。









コードをコピー


コードは次のとおりです:


これを理解した後、連続する 2 つの呼び出しに対して .grandparent() を置き換える祖父母プラグインを作成します。 () は考慮されないため、コードは次のようになります。


コードをコピー



コードは次のとおりです。 :まだ使用しています上記の例:




コードをコピー


コードは次のとおりです:コードをコピーします。

コードは次のとおりです。


$.fn.grandparent = function() {
var els = this.parent().parent(); return this.pushStack( els.get()); }; pushStack 内で、els.get() によって返された DOM 配列を新しい jQuery オブジェクトにカプセル化します。 this(jQuery[div# child]) は前に新しく構築された jQuery の prevObject に割り当てられ、最後に新しい jQuery オブジェクトを返します。
そこで、今回も end() を使用します。




コードをコピーします

コードは次のとおりです:


var grandparent = $('#child')。 grandparent()./* jquery-[ div#grandparent]*/.end() /*jquery-[div#child]*/

のブログから来ています。ご興味がございましたら、共有していただきありがとうございます。

jQuery PushStack

をクリックします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。