ある要素が指定の要素に属しているか判定

ある要素が指定の要素に属しているか判定するには、次のような方法で実装できます。

関数定義

/**
 * ある要素が指定の要素に属しているか判定
 * @param {Element} targetElement 判定する要素
 * @param {Element} fromElement 所属目的の要素
 * @return {boolean} 属している場合はtrue、属していない場合はfalseを返す
 */
var belongsElement = function(targetElement, fromElement) {
	if (!fromElement || !targetElement) return false;

	var parentElement = fromElement;

	while (parentElement.tagName.toLowerCase() !== 'html') {
		parentElement = parentElement.parentNode;

		if (parentElement === targetElement) return true;
	}

	return false;
};

使い方

構文

var result = belongsElement(targetElement, fromElement);

引数

引数名 説明
第一引数
必須
targetElement Element 判定する要素
第二引数
必須
fromElement Element 所属目的の要素

戻り値

属している場合はtrue、属していない場合はfalseを返します。

サンプルコード

HTML

								<div id="sample1">
									<div class="foo">
										<p><span id="sample2">Sample</span></p>
									</div>
								</div>
							

JavaScript

var sampleElem1 = document.getElementById('sample1'),
    sampleElem2 = document.getElementById('sample2');

var result = belongsElement(sampleElem2, sampleElem1);

alert(result);

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