Javascript 找出某个元素是否是特定元素类型的后代?

Javascript 找出某个元素是否是特定元素类型的后代?,javascript,events,dom-events,Javascript,Events,Dom Events,确定给定元素(targetElement)是否位于具有特定类型的元素(例如纯JavaScript中的锚点)内部的最佳方法是什么 (html) 既然有人在这个问题上看到了重复,我只是想澄清一下。这些问题寻找解决方案,以检查元素是否由特定元素类型而不是特定元素本身包围。 功能手柄点击(e){ var meInside=isDescendant(“A”,即目标); 如果(梅恩赛德){ 控制台日志(“是”); } } 函数isDescendant(父级、子级){ var node=child.paren

确定给定元素(
targetElement
)是否位于具有特定类型的元素(例如纯JavaScript中的锚点)内部的最佳方法是什么

(html)

既然有人在这个问题上看到了重复,我只是想澄清一下。这些问题寻找解决方案,以检查元素是否由特定元素类型而不是特定元素本身包围。

功能手柄点击(e){
var meInside=isDescendant(“A”,即目标);
如果(梅恩赛德){
控制台日志(“是”);
}
}
函数isDescendant(父级、子级){
var node=child.parentNode;
while(节点!=null){
if(node.nodeName==父节点){
返回true;
}
node=node.parentNode;
}
返回false;
}

您可以递归地执行此操作。如果函数到达主体但尚未找到,则该函数将中断

函数handleClick(事件){
event.preventDefault();
事件。stopImmediatePropagation();
//事件。目标我在锚内吗?
const has=hasParentOfType(event.target,'A');
console.log(has);
}
函数hasParentOfType(节点,类型){
if(type!=“BODY”&&node.nodeName==“BODY”)返回false;
if(type==node.nodeName)返回true;
返回hasParentOfType(node.parentNode,type);
}

可能重复@Eldar问题要求的是元素类型,而不是元素,您可以简单地使用
.contains()
。而且你的评论似乎是重复的,因为你贴了两次。
<a href="/">
  <div class="AnElementInBetween">
    <div class="anotherElementInBetween">
      <div class="targetElement" onclick="handleClick()">
         Am I inside an anchor element?
      </div>
    </div>
  </div>
</a>
function handleClick(event){
    // event.target Am I inside an anchor?
}