Necesitaba descubrir si un elemento que obtuve a través de un evento de clic era descendiente de un elemento padre en particular.
Asigné un id
a ese elemento principal y verifiqué si el elemento en el que se hizo clic pertenecía a sus elementos secundarios usando este bucle:
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 }})
En el bucle mientras usamos el operador de asignación =
para iterar hasta que ya no haya ningún nodo padre, en ese caso el.parentNode
retorna null
y el bucle mientras finaliza.
Es una forma de ir “subiendo” en el árbol de elementos hasta finalizar.
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
Cómo comprobar si un elemento es descendiente de otro
Necesitaba descubrir si un elemento que obtuve a través de un evento de clic era descendiente de un elemento padre en particular.
programar
es
2025-01-06
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente