JavaScript - getElementsByClassName()の使い方

JavaScriptで「クラス名」から該当要素を取得したい場合は、 getElementsByClassName()メソッドを使います。

getElementsByTagName()と同じように、 複数の要素を取得する可能性があるため、 「Elements」と複数形になっています。

戻り値はHTMLCollectionオブジェクトです。

getElementsByClassName()の構文


document.getElementsByClassName('クラス名')

クラス名 = クラス属性値

サンプルコード

HTML

次のHTMLは、p要素が4つあり、「class="cls1"」が2つ、 「class="cls2"」が2つあります。


<p class="cls1">コンテンツ1</p>

<p class="cls2">コンテンツ2</p>

<p class="cls1">コンテンツ3</p>

<p class="cls2">コンテンツ4</p>

JavaScript

次のコードは、「class="cls1"」の要素のみを取得します。


var elems = document.getElementsByClassName('cls1');

for (var i = 0; i < elems.length; i++){
	console.log(elems[i].textContent);
}

console.log(elems);

// 実行結果 -----------

コンテンツ1
コンテンツ3
HTMLCollection [ p.cls1, p.cls1 ]

該当クラス名がない場合

先程と同じHTMLを使って、存在しないクラス名を指定してみます。


var elems = document.getElementsByClassName('cls3');

for (var i = 0; i < elems.length; i++){
	console.log(elems[i].textContent);
}

console.log(elems);

// 実行結果-----------

HTMLCollection { length: 0 }

HTMLCollection { length: 0 }と表示されているように、 該当クラス名がない場合は、空のHTMLCollectionオブジェクトを返します。

この辺りの動作はgetElementsByTagName()と同じです。