8

Head First jQueryという本からjQueryを学んでいます。本から学ぶことは非常に簡単です。ポイントは、.each()function() パラメータを持つ関数( からスキャンした画像に含まれる)があることです。function() パラメータはindexvalueです。インデックスはページで説明されていますが、値はどうですか?また、これは匿名関数 (再利用できない) であるため、どのようにパラメーターを取りますか?

4

2 に答える 2

19

eachjQuery には 2 つのメソッドがあります。1 つは、多くの一致を含む jQuery オブジェクトを循環するためのものです。たとえば、ページ上のすべての段落を検索したいとします。

$("p").each(function(){
    // Do something with each paragraph
});

次に、 eachオブジェクトまたは配列を反復するためのより一般的なものがあります。

var names = ["Jonathan", "Sampson"];
$.each(names, function(){
    // Do something with each name
});

jQuery がこれらの例のいずれかの要素を循環するとき、現在処理しているオブジェクトのカウントを保持します。匿名関数を実行すると、現在の値 (インデックス) とそのオブジェクト (値) の 2 つのパラメーターが渡されます。

var names = ["Jonathan", "Sampson"];
$.each(names, function(index, value){
    alert( value + " is " + index );
});

ゼロベースのインデックスを使用しているため、「Jonathan is 0」と「Sampson is 1」が出力されます。

しかし、ネイティブの jQuery オブジェクトはどうでしょうか?

$("p").each(function(index, value){
    alert( value.textContent ); // The text from within the paragraph
});

この場合、valueは実際のHTMLParagraphElementオブジェクトなので、必要に応じてtextContentまたはのようなプロパティにアクセスできます。innerText

于 2012-06-11T08:35:00.277 に答える
1

value と呼ばれるこの 2 番目のパラメータは、現在 each 関数によって処理されているコレクションの値です。

2番目の質問について-名前がないからといって、匿名関数を再利用できますが、パラメーターを持ったり実行したりできないというわけではありません。次の例を参照してください。

function execute_fn(fn) {
  fn(1,2);
}

execute_fn(function(a,b) { ... });
于 2012-06-10T12:49:33.740 に答える