ある要素が指定の要素に属しているか判定
ある要素が指定の要素に属しているか判定するには、次のような方法で実装できます。
関数定義
/**
* ある要素が指定の要素に属しているか判定
* @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);