كيفية التحقق مما إذا كان عنصر ما هو سليل لعنصر آخر

كنت بحاجة إلى معرفة أن أحد العناصر التي حصلت عليها عبر حدث نقرة كان سليلًا لعنصر رئيسي معين.

لقد خصصت ملف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وتنتهي الحلقة.

إنها طريقة للذهاب "لأعلى" في شجرة العناصر حتى تنتهي.


المزيد من دروس js: