【jQuery】eq()でインデックスを指定して対象要素を取得する!

エンジニアに特化した転職エージェント!

・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方

それなら、キッカケエージェントにご相談!

キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!

また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!

転職エージェントに迷っている方、まずは無料でキャリア相談から!




(この記事は2023年10月07日に投稿されました。)

jQueryでインデックスを指定して要素を取得するにはeq()を使用します。

eq()とはマッチした要素からセレクタをインデックス番号で取得するメソッドになります。

そのため、マッチした複数の要素からインデックの番号でマッチした要素をセレクタとして指定することができます。

また、for文と組み合わせて使用することでインデックスの条件に一致する要素だけ指定することもできます。

そのため、同じ要素がたくさん存在するテーブル要素などで使用するととても便利で、ソースコードも見やすくなります。

今回はjQueryのeq()でインデックスを指定して対象要素を取得する方法について紹介していきます。

この記事はこんな方におすすめ
・マッチした要素の中から要素を特定してセレクタとして取得したい場合

eqとは()

eq()とはマッチしたセレクタのインデックスを取得するメソッドとなります。

セレクタをマッチした順番に0からの番号を割り振るようになります。

eq()の処理イメージ

eq()の書き方

eq()の書き方は下記のようになります。

セレクタの後ろにeq()と追記し、括弧の中に必須な引数を指定することで使用します。

また、eq()は下記のようにも書くことができます。

セレクタの中にjQueryセレクタとして追記することで使用することができます。

eq()の引数

eq()の引数は下記のようになります。

  1. インデックス:(必須)
    マッチした要素の番号をインデックスを指定する
    (0から指定可能)

eq()は必須な引数であるインデックスを指定します。

eq()の返り値

eq()の返り値はインデックスで指定したセレクタのjQueryオブジェクトとなります。

eq()でインデックスを指定して対象要素を取得するサンプルコード

eq()で対象要素をインデックス指定するサンプルコードをご紹介します。

ここでは、下記の3つのパターンでeq()を使用します。

  1. インデックスに0を指定する場合
  2. インデックスに正の数を指定する場合
  3. インデックスに負の数を指定する場合

インデックスに0を指定する場合

eq()のインデックスに0を指定すると、最初にマッチした要素をセレクタとして指定します。

● index.html

● style.css

● main.js

実行結果

eq()に正の数を指定して対象要素のインデックス指定を行った結果

eq()に0を指定して対象要素のインデックス指定を行っています。

そのため、取得ボタンをクリックすると、「obj-0」が書かれた要素の色が変化しています。

インデックスに正の数を指定する場合

eq()のインデックスに正の数を指定すると、「インデックス + 1」番目にマッチした要素をセレクタとして指定します。

● index.html

● style.css

● main.js

実行結果

eq()に0を指定して対象要素のインデックス指定を行った結果

eq()に正の数を指定して対象要素のインデックス指定を行っています。

そのため、取得ボタンをクリックすると、「obj-1」と「obj-3」が書かれた要素の色が変化しています。

インデックスに負の数を指定する場合

eq()のインデックスに負の数を指定すると、「最大インデックス – (インデックス – 1)」番目の要素をセレクタとして指定します。

● index.html

● style.css

● main.js

実行結果

eq()に負の数を指定して対象要素のインデックス指定を行った結果

eq()に負の数を指定して対象要素のインデックス指定を行っています。

そのため、取得ボタンをクリックすると、「obj-0」と「obj-3」が書かれた要素の色が変化しています。

eq()で条件を満たすインデックスを指定して対象要素を取得する方法

eq()で条件を満たすインデックスを指定して対象要素を取得するには、for文を使用します。

for文とは指定した回数分、繰り返し処理を行う文法になります。

そのため、マッチした要素数分繰り返し処理を行い、条件を指定することでマッチした要素を複数のインデックスで取得することができます。

● index.html

● style.css

● main.js

実行結果

eq()で条件を満たす対象要素のインデックス指定を行った結果

eq()で条件を満たす対象要素のインデックス指定を行っています。

今回は、2より大きい数値を条件として eq()で対象要素のインデックス指定を行っています。

そのため、取得ボタンをクリックすると、「obj-3」と「obj-4」と「obj-5」が書かれた要素の色が変化しています。

もし、for文について詳しく知りたい場合は下記の記事をご参考ください。

eq()でインデックスの範囲を指定して対象要素を取得する方法

eq()でインデックスの範囲を指定して対象要素を取得するには、nextUntil()と組み合わせて使用します。

nextUntil()とは、対象要素の兄弟要素で、指定したセレクターに一致する要素が出てくるまで選択するメソッドになります。

そのため、nextUntil()の引数にeq()のjQueryセレクタとして指定することで、インデックス指定の範囲を設定することができます。

● index.html

● style.css

● main.js

実行結果

範囲を指定してeq()で対象要素のインデックス指定を行った結果

範囲を指定してeq()で対象要素のインデックス指定を行っています。

今回は、2番目から4番目にマッチした要素をセレクタとして指定しています。

そのため、取得ボタンをクリックすると、「obj-1」と書かれた要素から「obj-3」と書かれた要素までの色が変化しています。

eq()を実際に使用したケース

eq()を実際に使用したケースをご紹介します。

ここでは、eq()を使用してそれぞれの株のページにリンクするようなコードを作成します。

● index.html

● style.css

● main.js

実行結果

eq()でそれぞれの株のページにリンクするようなコードを作成した結果

eq()を使用して株名について書かれた情報ページにリンクするようなコードを作成しています。

今回は、eq()を下記のように使用しています。
・テーブルから証券コードをそれぞれ取得する
・取得した証券コードのURLに連結し、クリックイベントでそのURLにリンクするようそれぞれの会社名に設定する

そのため、会社名をクリックするとYahooファイナンスのそれぞれの株のページが表示されています。

JavaScriptでインデックスを指定して対象要素を取得する場合

JavaScriptでインデックスを指定して対象要素を取得するには、querySelectorAll()とindexOf()を使用します。

querySeclectorAll()とは、マッチした全ての要素をセレクタとして取得するメソッドになります。

そして、indexOf()とは、対象のオブジェクトから指定した値の出現位置を取得するメソッドになります。

そのため、querySeclectorAll()でマッチする要素を全て取得し、indexOf()でインデックスを指定することでeq()と同様な処理が可能になります。

● index.html

● style.css

● main.js

実行結果

avaScriptで対象要素のインデックス指定を行った結果

JavaScriptで対象要素のインデックス指定を行っています。

今回はquerySelectorAll()でマッチしたセレクタのインデックスを配列として取得し、その配列からindexOf()でインデックス指定するための数値を取得しています。

そのため、取得ボタンをクリックすると、「obj-1」や「obj-3」が書かれた要素の色が変化しています。

もし、indexOf()について詳しく知りたい場合は下記の記事をご参考ください。

eq()以外でインデックスを指定して対象要素を取得する方法

ここでは、eq()以外でインデックスを指定して対象要素を取得する方法についてご紹介します。

インデックス指定を偶数のみ行う場合

インデックス指定を偶数のみ行うにはセレクタに「:even」を付与します。

:evenとは、インデックス番号が偶数番目の要素を選択するjQueryのセレクタになります。

そのため、セレクタに使用することで、対象要素のインデックス指定を偶数のみ行うことができます。

● index.html

● style.css

● main.js

実行結果

evenで対象要素のインデックス指定を奇数のみ行った結果

「:even」で対象要素のインデックス指定を偶数のみ行っています。

そのため、取得ボタンをクリックすると、奇数番号でマッチした要素の色が変化しています。

インデックス指定を奇数のみ行う場合

インデックス指定を奇数のみ行うにはセレクタに「:odd」を付与します。

:oddとは、インデックス番号が奇数番目の要素を選択するjQueryのセレクタになります。

そのため、セレクタに付与することで、対象要素のインデックス指定を奇数のみ行うことができます。

● index.html

● style.css

● main.js

実行結果

oddで対象要素のインデックス指定を偶数のみ行った結果

「:odd」で対象要素のインデックス指定を奇数のみ行っています。

そのため、取得ボタンをクリックすると、偶数番号でマッチした要素の色が変化しています。

まとめ

⚫︎ eq()とは対象要素の末尾にノードを追加するメソッドである。

⚫︎ eq()は下記の引数を指定して使用する
・インデックス(必須)

⚫︎ インデックスに0を指定する場合にeq()を使用すると、1番目にマッチした要素をセレクタとして取得する。

⚫︎ インデックスに正の数を指定する場合にeq()を使用すると、n + 1番目にマッチした要素をセレクタとして取得する。

⚫︎ インデックスに負の数を指定する場合にeq()を使用すると、「最大n – (n – 1)」番目にマッチした要素をセレクタとして取得する。

⚫︎ eq()で対象要素のインデックス指定を複数行うには、for文を使用する。

⚫︎ eq()でインデックスの範囲を指定して対象要素を取得するにはnextUtil()と組み合わせて使用する。

⚫︎ JavaScriptでインデックスを指定して対象要素を取得するにはquerySelectorAll()とindexOf()を使用する。

⚫︎ 対象要素のインデックス指定を偶数のみ行うにはセレクタに「:even」を付与して使用する。

⚫︎ 対象要素のインデックス指定を奇数のみ行うにはセレクタに「:odd」を付与して使用する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です