Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

jQueryeach()のしくみ

jQuery each() DOM要素を反復処理するための簡潔な方法です。 Each() メソッドは、ターゲットのjQueryオブジェクトで呼び出されるように設計されています。 jQueryオブジェクトは、1つ以上のDOM要素を含み、jQueryメソッドにアクセスできるオブジェクトです。 each()だけではありません エラーが発生しにくく、複数のDOM要素の操作が簡単になります。

jQuery each() コールバック関数が必要です—後で実行される別の関数に渡される関数。コールバック関数の内部には、要素のインデックス番号と要素自体へのアクセスがあります。コールバック関数のより包括的なレビューはここにあります。

each()のアプリケーション JavaScriptループと同じくらい簡単ですが、混乱を招く可能性のある場所がいくつかあります。これらの点を明確にするとともに、構文についても見ていきます。このガイドの最後に、jQuery each()を適用するさまざまな方法を確認するためのステップバイステップのコード例を示します。 。

jQueryeach()とは何ですか?

jQueryはそれぞれ、jQueryライブラリのループメソッドです。 DOM要素を反復処理することでJavaScriptループのように機能します。 jQuery each() コールバック関数が必要です。コールバック関数の内部には、DOM要素を操作できます。

コールバック関数の本体内で、条件ステートメントを使用して、選択した要素の一部を変更できます。条件文は、JavaScriptのif…then文です。これにより、要素がどのように正確に変更されるかをより詳細に制御できます。

jQuery each()構文

jQueryはそれぞれ2つの方法で呼び出すことができます。まず、選択した要素で呼び出されるメソッドとして。コールバック関数は、最大2つのオプションの引数(インデックスと値)を受け入れます。 Indexは、現在の要素のインデックス番号です。現在の要素がリストの最初の場合、インデックス番号は0を返します。

value引数は、現在の要素を参照します。メソッドを値にチェーンするには、jQueryセレクターで値をラップする必要があることに注意してください。構文を分解できるように、これをすべて抽象的なコードに入れましょう。

$('div').each((index, value) => {
  console.log(`${index}: ${$(value).text()}`)
})

ここでは、ページ上の各

を選択し、ループしています。各反復で、現在の要素のインデックス位置と値にアクセスできます。単に$(value)を返す 恐ろしい[オブジェクトオブジェクト] 価値。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

[オブジェクトオブジェクト] オブジェクトの文字列表現です。これは、必要な正確な値を抽出するためにメソッドを呼び出す必要があることを意味します。上記の場合、text()を使用しています オブジェクトのテキスト属性を明らかにするメソッド。 [オブジェクトオブジェクト]についてもっと読む 正確に何が返されているのかを把握するため。

上記の例では、各

のインデックス番号とそれに続くテキスト属性をログに記録します。インデックスにアクセスする必要がない場合は、次のようにコードをリファクタリングできます。

$('div').each(function() {
  alert($(this).text())
})

このように記述すると、現在の

要素のテキストもログに記録されます。このコールバック関数のスコープでは、キーワード this また、値変数によって以前に参照された要素を参照します。キーワードthisにはアクセスできないことに注意してください 矢印関数で。

矢印関数は関数を作成するためのコンパクトな代替手段ですが、キーワードthisにバインドされません。つまり、これを矢印関数で使用して返されるオブジェクトは、関数表記で記述した場合に返されるオブジェクトではありません。

このガイドでは、矢印関数の詳細について説明します。

jQuery each()の例

上記の構文例を拡張して、いくつかの属性を追加しましょう。まず、さまざまなクラスに属する色のリストの基本的なHTMLレンダリングから始めます。

<div class="colorSelect">Red</div>
<div>Pink</div>
<div class="color">Orange</div>
<div class="colorSelect">Purple</div>
<div class="colorSelect">Blue</div>

これにより、DOM内の各テキスト要素がレンダリングされます。まず、矢印関数と従来の関数の両方を使用して、コンソールにテキストを記録することから始めましょう。

$('.colorSelect').each((index, value) => {
  console.log($(value).text())
})

クラス名がcolorSelectの

のみを選択することにより、テキストRed、Purple、およびBlueをログに記録します。新しいjQueryインスタンスに値をラップして、jQuery text()を呼び出す方法に注目してください。 方法。これを行うと、選択した
要素のテキストのみが返されます。

同じ結果を返しましょう。ただし、キーワードthis。を使用します。

$('.colorSelect').each(function() {
   console.log($(this).text())
})

コールバックとして、無名関数(名前のない関数)を使用できます。ここでも、テキストRed、Purple、およびBlueが返されます。矢印関数にはjQueryにいくつかの機能がありますが、jQueryコールバックには従来の関数表記を使用することをお勧めします。

これで、要素のコレクションを反復処理する方法がわかりました。それでは、楽しんで色を変えましょう!

<div class="colorSelect">Red</div>
<div>Pink</div>
<div class="color">Orange</div>
<div class="colorSelect">Purple</div>
<div class="colorSelect">Blue</div>

<div class='result'>

</div>

<style>
  .colorSelect {
    color: blue;
  }
  
  .green {
    color: green;
  }
</style>

カラーリストページを維持しながら、