Как проверить, является ли элемент потомком другого

Мне нужно было выяснить, что элемент, который я получил через событие щелчка, является потомком определенного родительского элемента.

Я назначил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: