要素が別の要素の子孫であるかどうかを確認する方法

クリックイベントを介して取得した要素が特定の親要素の子孫であることを確認する必要がありました。

私は割り当てましたidその親に、クリックされた要素がこのループを使用してその子要素に属しているかどうかを確認しました。

const isDescendant = (el, parentId) => {
  let isChild = false

if (el.id === parentId) { //is this the element itself? isChild = true }

while (el = el.parentNode) { if (el.id == parentId) { isChild = true } }

return isChild }

document.addEventListener(‘click’, event => { const parentId = ‘mycontainer’

if (isDescendant(event.target, parentId)) { //it is a descendant, handle this case here } else { //it’s not a descendant, handle this case here } })

whileループでは、代入演算子を使用します=親ノードがなくなるまで繰り返します。その場合はel.parentNode戻り値nullそして、whileループは終了します。

これは、要素ツリーが終了するまで「上」に移動する方法です。

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: