Comment vérifier si un élément est un descendant d'un autre

J'ai eu le besoin de savoir qu'un élément obtenu via un événement de clic était un descendant d'un élément parent particulier.

J'ai assigné unidà ce parent, et j'ai vérifié si l'élément cliqué appartenait à ses éléments enfants en utilisant cette boucle:

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 } })

Dans la boucle while, nous utilisons l'opérateur d'affectation=itérer jusqu'à ce qu'il n'y ait plus de nœud parent, dans ce casel.parentNodeRetournullet la boucle while se termine.

C'est un moyen de remonter dans l'arborescence des éléments jusqu'à ce qu'il se termine.

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: