Jqueryの$(selector).each()と$.each()の違いを詳しく解説
私たちは皆、Jqurey の each 関数を使用したことがあり、each() を呼び出すには 2 つの方法があることを知っています。1 つは $.each() を介して呼び出すことで、もう 1 つは $(selector).each() を介して呼び出すことです。 )では、それらの違いは何ですか?
Jquery のソース コードを見ると、$.each() がコア実装であり、$(selector).each() が呼び出される $.each() であることがわかります。まず $ のソース コードを分析しましょう。 .each() (下部):
each (obj, callback, args) 関数は 3 つのパラメーターを受け取ります: obj - 走査されるオブジェクトまたは配列、callback - 走査および実行される コールバック関数 、args - 自分で指定した配列 (最初は無視してください)。
jQueryの各メソッドの実装はcallメソッドを使用しています。 まず、次の例では、それぞれの配列の効果は同じです。
通話を通じてこの方向を変更できます。
var testCall = function(obj, callback){ callback.call(obj, 1); }
testCall(["1. this のポインティングを変更します", "2. この関数を内部的に呼び出すことができます"], function(index){ //call メソッドを使用すると、次の最初のパラメータに直接アクセスできますthis を介した呼び出し 渡されるオブジェクト。
alert(this[index]) //2. 関数は、call メソッドを使用して呼び出すことはできず、this は使用されません。
var test = function(obj, callback){ callback(obj, 1); }
alert(this[index ]); //未定義});
jQuery.each は call によって変更された this ポイントである必要があります;
$.each([1,2,3], function (index, item) { console.log({index:index,value:item,_this:this}); });/* Object {index: 0, value: 1, _this: Number} Object {index: 1, value: 2, _this: Number} Object {index: 2, value: 3, _this: Number} */
var each = function(arr, callback){ for( var index = 0 ; index < arr.length ; index++ ){ callback.call(arr[index], index, arr[index]); } } each([1,2,3], function (index, item) { console.log({index:index,value:item,_this:this}); });/* Object {index: 0, value: 1, _this: Number} Object {index: 1, value: 2, _this: Number} Object {index: 2, value: 3, _this: Number} */
if(isArray) { for(; i < length; i++) { value = callback.call(obj[i], i, obj[i]); if(value === false) { break; } } }
forループ
配列の各要素を走査し、callメソッドを使用して実行しますobj[i].callback( i, obj[i]), したがって、コールバック関数を自分で記述するときは、jquery が配列内の各オブジェクトを使用してコールバック関数を実行することを認識する必要があります。渡されるパラメーターはインデックスです。同時に、コールバック メソッド内の this は要素を指します。次の行は、コールバック関数が値を返すかどうかを決定します。コールバック関数が false を返した場合は、ジャンプします。配列のループの。 渡したオブジェクトもトラバースできる場合、コードは上記の配列トラバーサルと同じです
else { for(i in obj) { value = callback.call(obj[i], i, obj[i]); if(value === false) { break; } } }
オブジェクトを渡したら、for(x in y)を使ってオブジェクトのプロパティをトラバースします
,
原則は上記と同じですが、属性に変更するだけです。2. args の場合
3 番目のパラメータを指定して each() を呼び出す場合、次のコード ブロックを入力して分析します:
if(isArray) { for(; i < length; i++) { value = callback.apply(obj[i], args); if(value === false) { break; } } } else { for(i in obj) { value = callback.apply(obj[i], args); if(value === false) { break; } } }
注意!ここで渡されるパラメータは、自分で渡した args 配列です。これは、args パラメータを持たない場合とは異なります。つまり、各関数を呼び出して独自の配列パラメータを渡す場合、コールバック 関数のパラメータ リストは次のようになります。渡した args 配列。他のすべてについても上記と同じです。
$(selector).each(callback,args) 関数は 2 つのパラメーターを受け取ります: callback - トラバースして実行されるコールバック関数、args - 自分で指定した配列。 $.each() 関数を理解した後、$(selector).each は簡単です。ソース コードを開くと、$(selector).each 内で $.each() 関数が呼び出されていることがわかります。each: function( callback, args ) { return jQuery.each( this, callback, args ); },
ご覧のとおり、$.each() を呼び出すと、obj パラメーターは $(selector) として記述されます。これは、jquery内部オブジェクトを返す jquery セレクターです。
概要: $.each() と $(selector).each() の違いは、前者はすべてのオブジェクトまたは配列を走査できるのに対し、後者は jquery セレクターによって返される jquery 内部オブジェクトを走査できることです。もっと強くなってください
以上がJqueryの$(selector).each()と$.each()の違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

イーサリアムとビットコインの違いは重要です。技術的には、BitcoinはPowを使用し、EtherはPowからPOSに移行しました。ビットコインの取引速度は遅く、イーサリアムは高速です。アプリケーションシナリオでは、Bitcoinは支払いストレージに焦点を当て、EtherはスマートコントラクトとDAPPをサポートしています。発行に関しては、ビットコインの総量は2100万人であり、エーテルコインの総額は固定されていません。各セキュリティチャレンジが利用可能です。市場価値に関しては、ビットコインが最初にランク付けされ、両方の価格の変動は大きいですが、特性が異なるため、イーサリアムの価格動向はユニークです。

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

Bean BunとDeepseekのコアの違いは、検索の精度と複雑さです。 1. Doubaoは、シンプルで直接的なキーワードのマッチングに基づいていますが、低コストですが、精度が低く、構造化されたデータにのみ適しています。深い学習に基づいています。最終的な選択は、アプリケーションのシナリオとリソースの制限に依存します。

OUYI OKEXデジタル資産取引プラットフォームは、従来の証券市場とは異なり、ユーザーはいつでもFIAT通貨取引、通貨取引、契約取引を行うことができます。 ただし、プラットフォームは、システムメンテナンスのアップグレードや特別な市場イベント(深刻な市場の変動を引き起こす極端な市場条件など)の場合、取引の停止や契約取引の開始規則の変更など、取引時間またはルールを事前に発表し、一時的に調整します。したがって、ユーザーはプラットフォームの発表と市場動向に細心の注意を払い、取引の機会をつかみ、リスク管理において良い仕事をすることをお勧めします。 OUYI OKEXの取引時間とルールの調整を理解することによってのみ、デジタル通貨市場で簡単にすることができます。

ApacheまたはNginxとPHPの間の共同作業メカニズム:mod_php5、php-cgi、およびphp-fpmの比較は、ApacheまたはNginxを使用してWebサーバーを構築し、バックエンドにPHPを使用することです。

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。
