パターン(セレクター)に一致した要素をすべて取得

パターン(セレクター)に一致した要素をすべて取得するには、次のような方法で実装します。

関数定義

JavaScript

/**
 * パターンに一致した要素をすべて取得
 * @param {NodeList|HTMLCollection|Element[]|Node[]} elems 検索する要素群
 * @param {string} selector 検索パターン(セレクター)
 * @return {Element[]} 見つかった要素を配列、見つからなかったら空の配列を返す
 */
var filterElements = function(elems, selector) {
	if (typeof elems.length === 'undefined') return elems;

	var results = [];

	for (var i = 0, len = elems.length; i < len; i++) {
		if (elems[i].matches(selector)) results.push(elems[i]);
	}

	return results;
};

使い方

引数

引数名 説明
第一引数 必須 elems NodeList | HTMLCollection | array 検索する要素群
第二引数 必須 selector string 検索パターン(セレクター)

戻り値

見つかった要素を配列、見つからなかったら空の配列を返します。

サンプルコード

JavaScript

var sampleElems = document.getElementsByTagName('div');

var matchElems = filterElements(sampleElems, '.sample');

alert(matchElems.length);

JavaScript逆引きリファレンス一覧へ戻る