ホームページ ウェブフロントエンド jsチュートリアル jQuery ソース コード分析 jQuery.fn.each および jQuery.each use_jquery

jQuery ソース コード分析 jQuery.fn.each および jQuery.each use_jquery

May 16, 2016 pm 04:18 PM
jquery 分析する ソースコード 使用法

この記事の例では、jQuery ソース コード分析における jQuery.fn.each と jQuery.each の使用法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

次のコードの機能は、選択した各 div 要素に赤いクラスを追加することです。

コードをコピーします コードは次のとおりです:
$('div').each(function(index, elem) {

$(this).addClass('red');
}
});

上記で使用されている .each は jQuery.fn.each で、jQuery.each を通じて内部的に実装されています

コードをコピーします コードは次のとおりです:
jQuery.fn.each

まずは公式の API 説明を載せておきます。注意点は 2 つだけです。
上の例の $(this).addClass('red') は、現在操作されている dom 要素を指します
それぞれに渡されるメソッドは任意の値を返すことができ、戻り値が false の場合は、現在のループ操作から抜け出します。
コードをコピー コードは次のとおりです:
/**

* @description jQuery オブジェクト内の一致する dom 要素ごとにメソッドを実行します

* @param {Number} インデックス コレクション内の現在処理されている要素の位置

* @param {DOMElement} 要素 現在処理されている dom 要素

*/
.
.each( function(index, Element) )
以下に 2 つの簡単な例を示します
例 1:

ページ上のすべての div 要素に red クラスを追加します


コードをコピーします コードは次のとおりです:
$('div').each(function(index, elem) {

$(this).addClass('red');
}
});
例 2
ページの最初の 5 つの div 要素に red クラスを追加します


コードをコピーします コードは次のとおりです:
$('div').each(function(index, elem) {

If(index>=5) return false // ループから抜け出します
$(this).addClass('red');
}
});
使い方は上記の通り非常に簡単なので割愛します。詳しくは http://api.jquery.com/each/
をご覧ください。 内部ソース コードは jQuery.each を通じて実装されます。jQuery.each のソース コードについて話した後、jQuery.fn.each のソース コードは非常に単純です。


jQuery.each:

まず簡単な例を見てみましょう


コードをコピー コードは次のとおりです:
$.each([52, 97], function(index, value) ) {
alert(インデックス ': ' 値 ':' this);
}
});
出力内容は以下のとおりです:
0:52-52

1
1:97-97

クラスの公式 API の説明

注意点も2つあります

上記の例では、これはコレクション内の要素、つまり次の valueOfElement

ループを抜け出すにはコールバックで false を返します

コードをコピー コードは次のとおりです:
/**

* @description コレクション内の各要素 (配列またはオブジェクト) に対して操作を実行します

* @param {Number|String} indexInArray コレクション内の要素の対応する位置 (コレクションが配列の場合は数値、コレクションがオブジェクトの場合はキー値)

* @param {AnyValue} valueOfElement コレクション
内の要素
*/
j
jQuery.each( collection, callback(indexInArray, valueOfElement) )

例 1

コードをコピー コードは次のとおりです。
$.each( ['one,'two','three' , 'four '], function(index, value){

If(index >= 2) return false;

alert( "インデックス:" インデックス ", 値: " 値 );
}
});

例 2

サンプルは公式 Web サイトから直接コピーしたものなので、そのまま使用してください

コードをコピーします コードは次のとおりです:
$.each( { name: "John", lang: "JS " }, function(k, v){

alert( "キー: " k "、値: " v );
}
});

ソースコード:
コードをコピー コードは次のとおりです:
// args は内部使用のみです

各: function( obj, callback, args ) {

var 値、

i = 0,

長さ = obj.length,

isArray = isArraylike( obj ); // obj は、実際に jQuery オブジェクトを提供する、{'0':'hello', '1':'world', 'length':2} などの配列のようなオブジェクトです

If ( args ) { // args、実際にはこのパラメータの実際の効果は見つかりませんでした~~ スキップしてelseの内容を見てください。コールバックで渡されるパラメータが異なること以外に違いはありません。
if ( isArray ) {
for ( ; i value = callback.apply( obj[ i ], args );
If ( value === false ) {
休憩;
}
}
} else {
for ( i in obj ) {
value = callback.apply( obj[ i ], args );
If ( value === false ) {
休憩;
}
}
}
// それぞれの最も一般的な使用のための、特別で高速なケース
} else {
if ( isArray ) { RM for ( ; i value = callback.call( obj[ i ], i, obj[ i ] );
If ( value === false ) {
休憩;
}
}
} Else {// 処理オブジェクト
for ( i in obj ) {
value = callback.call( obj[ i ], i, obj[ i ] ) // value はコールバック
の戻り値です。 If (value === false) {// ここで、value === false の場合、サイクルから直接ジャンプすることに注意してください
休憩;
}
}
}
}
obj を返します;
}
}、



最新の jQuery.fn.each ソース コード:

jQuery.each を理解していれば、特に話すことはありません。

コードをコピーします コードは次のとおりです:
each: function( callback, args ) {

return jQuery.each( this, callback, args );
}
}、


結論

jQuery.extend および jQuery.fn.extend と同様に、jQuery.each および jQuery.fn.each のコードは非常に単純ですが、これら 2 つのメソッドも jQuery で広く使用されています。例:

コードをコピー コードは次のとおりです:
jQuery.each("Boolean Number String Function Array Date RegExp Object Error" .split( " "), function(i, name) {

Class2type[ "[object " name "]" ] = name.toLowerCase();
}
});

さあ、それぞれをマスターしましょう!

この記事が皆さんの jQuery プログラミングに役立つことを願っています。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQL ISNULL関数の詳しい解説と使い方紹介 MySQL ISNULL関数の詳しい解説と使い方紹介 Mar 01, 2024 pm 05:24 PM

MySQL の ISNULL() 関数は、指定された式またはカラムが NULL かどうかを判断するために使用される関数です。ブール値、式が NULL の場合は 1、それ以外の場合は 0 を返します。 ISNULL()関数は、SELECT文やWHERE句の条件判定に使用できます。 1. ISNULL() 関数の基本構文: ISNULL(expression) ここで、expression は、NULL かどうかを判断する式です。

jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する jQuery のヒント: ページ上のすべての a タグのテキストをすばやく変更する Feb 28, 2024 pm 09:06 PM

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: &lt

PHPコードのソースコードを解釈・実行せずにブラウザに表示するにはどうすればよいでしょうか? PHPコードのソースコードを解釈・実行せずにブラウザに表示するにはどうすればよいでしょうか? Mar 11, 2024 am 10:54 AM

PHPコードのソースコードを解釈・実行せずにブラウザ上に表示するにはどうすればよいでしょうか? PHP は、動的 Web ページの開発に一般的に使用されるサーバー側スクリプト言語です。サーバー上で PHP ファイルが要求されると、サーバーはそのファイル内の PHP コードを解釈して実行し、最終的な HTML コンテンツを表示のためにブラウザーに送信します。ただし、PHP ファイルのソース コードを実行するのではなく、ブラウザーに直接表示したい場合があります。この記事では、PHPコードのソースコードを解釈・実行せずにブラウザ上に表示する方法を紹介します。 PHPでは、次のように使用できます

DreamWeaver CMS のセカンダリディレクトリを開けない原因の分析 DreamWeaver CMS のセカンダリディレクトリを開けない原因の分析 Mar 13, 2024 pm 06:24 PM

タイトル: DreamWeaver CMS のセカンダリディレクトリを開けない原因と解決策の分析 Dreamweaver CMS (DedeCMS) は、さまざまな Web サイトの構築に広く使用されている強力なオープンソースのコンテンツ管理システムです。ただし、Web サイトの構築中に、セカンダリ ディレクトリを開けない状況が発生し、Web サイトの通常の動作に問題が発生することがあります。この記事では、セカンダリ ディレクトリを開けない考えられる理由を分析し、この問題を解決するための具体的なコード例を示します。 1. 考えられる原因分析: 疑似静的ルール構成の問題: 使用中

jQuery を使用してすべての a タグのテキスト コンテンツを変更する jQuery を使用してすべての a タグのテキスト コンテンツを変更する Feb 28, 2024 pm 05:42 PM

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? Feb 29, 2024 am 09:03 AM

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

PHP での POST リクエストの正しい使用法 PHP での POST リクエストの正しい使用法 Mar 27, 2024 pm 03:15 PM

PHP での POST リクエストの使用は、Web サイト開発における一般的な操作であり、フォーム データ、ユーザー情報などのデータは、POST リクエストを通じてサーバーに送信できます。 POST リクエストを適切に使用すると、データのセキュリティと正確性を確保できます。以下では、PHP での POST リクエストの正しい使用法を紹介し、具体的なコード例を示します。 1. PHP における POST リクエストの基本原則 PHP では、POST メソッドを通じて送信されたデータは、$_POST グローバル変数を使用して取得できます。 POST メソッドはフォーム番号を次のように変換します。

Tencent の主要なプログラミング言語が Go であるかどうかを分析する Tencent の主要なプログラミング言語が Go であるかどうかを分析する Mar 27, 2024 pm 04:21 PM

タイトル: テンセントの主要なプログラミング言語は Go ですか: 詳細な分析 中国の大手テクノロジー企業として、テンセントはプログラミング言語の選択において常に多くの注目を集めてきました。近年、テンセントは主に Go を主要なプログラミング言語として採用していると考える人もいます。この記事では、Tencent の主要なプログラミング言語が Go であるかどうかについて詳細な分析を行い、この見解を裏付ける具体的なコード例を示します。 1. Tencent における Go 言語の適用 Go は、Google によって開発されたオープンソースのプログラミング言語であり、その効率性、同時実行性、シンプルさにより多くの開発者に愛されています。

See all articles