ywork2020.com

Title

jQオブジェクトから単独要素を取得する

目次 (INDEX)

get とは

ここで説明する get とは次の語句からなる jQuery のメソッドです。
get
読み: ゲット
意味: 得る、確保する

目次に戻る

get メソッドの概要

このメソッドは、jQuery セレクターによって取得した jQueryオブジェクトから、インデックス番号の指定による単独の HTMLElement を取得します。 また、メソッドの引数が空の場合には Array<HTMLElement> として要素の配列を取得します。

セレクターの設定によって jQueryオブジェクトは 単数、または複数の要素を取得します。 このメソッドは、その単数、または複数に限らず、引数に指定したインデックス番号の要素を HTMLElement として取得することができます。

このメソッドを使う利点として、HTML 要素を HTMLElement として取得できるということは、 このメソッドに続けてチェーンメソッドから JavaScript のメソッドやプロパティが利用できるということです。

これは jQuery のメソッドやプロパティだけでは処理しずらいものを JavaScript のメソッドやプロパティなども織り交ぜて処理することが可能になります。

だだ 一方で考えられるのは、JavaScript と jQuery は同じものという認識でみれば、 jQuery のコードと JavaScript のコードを混ぜて記述することも普通にあるので get() の利用は必須ではないかもしれません。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

$(Selector).get(index)

このメソッドの引数を空にした場合、Array<HTMLElement> を返します。
結果、以下のコードは同じ要素を取得することになります。

  • .get(0)
  • .get()[0]

目次に戻る

サンプルコードと実行結果

ここでは 要素に clsExample という class を付けたものを 3つ用意しました。 各要素には識別可能な id 属性の値も付けています。

この要素らを jQセレクターで取得したのち、get() メソッドを使って HTMLElement の配列として取得しなおします。 これにより、jQuery から直接は利用できない JavaScript の innerText プロパティや id プロパティを利用できるようになります。

サンプルコード: CSS
<style>
	.clsExample{
		background-color: ##khaki;
		border: thin solid ##gray;
		margin: 1em 0;
		padding: 0.5em;
		text-align: center;
		width: 30%;
	}
</style>
サンプルコード: HTML
<head>
	<style>...</style>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
	<div class ="clsExample" id="idDiv1"> Div要素 1 </div>
	<div class ="clsExample" id="idDiv2"> Div要素 2 </div>
	<div class ="clsExample" id="idDiv3"> Div要素 3 </div>
	<button id="idButton"> ボタン </button>
	<script>...</script>
</body>
  • 06, 07, 08: div class="clsExample" (この class の各要素には id 属性を設定しています。)
  • 09: button id="idButton" (このボタンがクリックされると script コードの 03 ~ 07 行が実行されます。)
サンプルコード: script
<script>
	let arrEx = $(".clsExample");
	$("#idButton").click(function(){
		for(i = 0; i < arrEx.get().length; i++){
			arrEx.get(i).innerText = arrEx.get(i).id;
		}
	});
</script>
  • 02: arrEx = $(".clsExample") (arrEx に jQオブジェクトを使って要素配列を代入します。)
  • 03-07: $("#idButton").click(function(){ 処理 } (idButton の要素がクリックされると { 処理 } の部分を実行します。)
  • 04-06: for(i = 0; i < arrEx.get().length; i++){ 処理 } (arrEx の配列数だけ繰り返し処理を実行します。)
  • 05: arrEx.get(i).innerText = arrEx.get(i).id; (arrEx.get(i) で特定した要素のテキストに id 値を出力します。)
実行結果:
Div要素 1
Div要素 2
Div要素 3

目次に戻る