jQuery.eachの詳しい説明 use_jquery
jQuery.each メソッドは、jQuery のコア ツール メソッドの 1 つで、オブジェクトと配列を反復するために使用できる一般的な反復メソッドです。 jQuery オブジェクトを反復処理する $().each() メソッドとは異なり、このメソッドは任意のオブジェクトを反復処理するために使用できます。通常は 2 つのパラメータ
が必要ですオブジェクト: トラバースする必要があるオブジェクトまたは配列。
callback: 各メンバー/要素によって実行されるコールバック関数。
コールバック関数には 2 つのパラメータがあります。1 つ目はオブジェクトのメンバーまたは配列のインデックスで、2 つ目は対応する変数またはコンテンツです。各ループを終了する必要がある場合は、コールバック関数が false を返すようにすることができ、他の戻り値は無視されます。
要素のインデックスとコンテンツの両方を使用して、配列をループします。例は次のとおりです。
//例遍对象,同时使用成员名称和变量内容。 $.each( [0,1,2], function(i, n){ alert( "Item #" + i + ": " + n ); }); //例遍对象,同时使用成员名称和变量内容。 $.each( { name: "John", lang: "JS" }, function(i, n){ alert( "Name: " + i + ", Value: " + n ); });
もちろん、インスタンス呼び出しを直接使用することもできます
$( 'div' ).each( function(i,n){ return i+n.text; } )
実際、ソース コード内のインスタンス (プロトタイプ) メソッドも呼び出される静的メソッドなので、各メソッドを分析するには、その静的メソッドを分析するだけで済みます。インスタンスの呼び出しは、静的メソッドを使用する特殊なケースにすぎません。
// Execute a callback for every element in the matched set. // (You can seed the arguments with an array of args, but this is // only used internally.) each: function( callback, args ) { return jQuery.each( this, callback, args ); },
プロトタイプメソッドでは、このオブジェクトをトラバース対象のオブジェクトとして直接渡します。 以下は静的メソッドのソースコードです
。// args is for internal usage only each: function( object, callback, args ) { var name, i = 0, length = object.length, isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { for ( name in object ) { if ( callback.apply( object[ name ], args ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.apply( object[ i++ ], args ) === false ) { break; } } } // A special, fast, case for the most common use of each } else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } } return object; },
特に多くはありませんが、このとき、私たちがよく使うマニュアルでは通常 2 つのパラメーターを使用することに注意する必要があります。ソース コードでは、受け入れ可能なパラメータが 3 つあり、3 番目のパラメータは配列であり、コールバック関数のパラメータとして渡されます。
最初にいくつかの変数を宣言します、i、name、lengthはループの準備にありますが、isObjは便利なパラメータが配列であるかオブジェクトであるかを判断することができます。パラメータが関数であるか、長さ属性が存在しない場合、残りは配列または配列のようなものとして処理されます。
isObj = 長さ === 未定義 || jQuery.isFunction( object );
この文は非常に簡潔に書かれており、演算子の優先順位を使用して最初に実行されます ===
実際、この種の判断はあまり正確ではなく、次のような大まかな区別にすぎません。
var obj={length:'a'}; var isObj= obj.length=== undefined || jQuery.isFunction( obj ); alert(isObj); //false
次に、3 番目のパラメーターが追加されているかどうかに基づいて区別されます。まず、追加しない場合の状況を見てみましょう。これは
です。} else { if ( isObj ) { for ( name in object ) { if ( callback.call( object[ name ], name, object[ name ] ) === false ) { break; } } } else { for ( ; i < length; ) { if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { break; } } } }
isObj 変数に基づいて配列とオブジェクトを「区別」します。配列には for ループを使用し、オブジェクトには for...in ループを使用します。ループが実行されるたびに、コールバック関数が実行され、現在のループ配列が実行されます。またはオブジェクトのキーと値が実行されます。ここで使用される呼び出しメソッドを渡します。最初のパラメータは関数の「this」です。つまり、現在のループの値が this として使用され、次の 2 つはキーと値です。値またはポインタと値を使用するため、ループ内でコールバック関数を使用します。2 番目のパラメータはこれを使用するのと同じです。例:
//刚才的例子 $( 'div' ).each( function(i,n){ return i+n.text; } ) //等价于 $( 'div' ).each( function(i,n){ return i+this.text; } )
3 番目のパラメータが追加された場合、コールバック関数の値の転送メソッドが変更されます。これは引き続き現在の値を指しますが、args は 3 番目のパラメータです。ここで注意する必要があるのは、3 番目のパラメータは js オリジナルの配列形式である必要があり、クラス配列または jQuery オブジェクトにすることはできません。そうでない場合はエラーが発生します。 apply メソッドがサポートされていないため、報告されません。コールバック関数が false を返した場合、ループはスキップされます。例えば、奇数番目の添字配列のみを処理し、偶数番目の項目と判断された場合は、コールバック関数 <🎜 内で return false を実行するだけです。 >
return object;
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

Matter.jsは、JavaScriptで書かれた2D Rigid Body Physics Engineです。このライブラリは、ブラウザで2D物理学を簡単にシミュレートするのに役立ちます。剛体を作成し、質量、面積、密度などの物理的特性を割り当てる機能など、多くの機能を提供します。また、重力摩擦など、さまざまな種類の衝突や力をシミュレートすることもできます。 Matter.jsは、すべての主流ブラウザをサポートしています。さらに、タッチを検出し、応答性が高いため、モバイルデバイスに適しています。これらの機能はすべて、物理ベースの2Dゲームまたはシミュレーションを簡単に作成できるため、エンジンの使用方法を学ぶために時間をかける価値があります。このチュートリアルでは、このライブラリのインストールや使用法を含むこのライブラリの基本を取り上げ、

この記事では、JQueryとAjaxを使用して5秒ごとにDivのコンテンツを自動的に更新する方法を示しています。 この例は、RSSフィードからの最新のブログ投稿と、最後の更新タイムスタンプを取得して表示します。 読み込み画像はオプションです

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。
