在类似“this”的事件回调中,`event.target`保证是`this`的后代/等于`this`;点击";用JavaScript?

在类似“this”的事件回调中,`event.target`保证是`this`的后代/等于`this`;点击";用JavaScript?,javascript,dom,javascript-events,Javascript,Dom,Javascript Events,如果我通过event.target的.parentNode递归,我是否保证能够到达此?规范中有没有提到这一点 这里有一些代码来演示这一点,如果event.target是this var isaderntof=函数(子函数、父函数){ 如果(子项===父项){ 返回true; } if(child==null){ 返回false; } 返回isAgentOf(child.parentNode,parent); }; var节点=document.queryselectoral(“*”); 对于(

如果我通过
event.target
.parentNode
递归,我是否保证能够到达
?规范中有没有提到这一点

这里有一些代码来演示这一点,如果
event.target
this

var isaderntof=函数(子函数、父函数){
如果(子项===父项){
返回true;
}
if(child==null){
返回false;
}
返回isAgentOf(child.parentNode,parent);
};
var节点=document.queryselectoral(“*”);
对于(var i=0;i
HTML

A
B
C
D
EF
B 123

事件被调度到其目标
EventTarget
,并触发在那里找到的任何事件侦听器。冒泡事件将触发通过向上跟踪
EventTarget
的父链找到的任何其他事件侦听器,检查在每个后续
EventTarget
上注册的任何事件侦听器。此向上传播将持续到并包括
文档

请注意,还有一些非冒泡事件,如
focus
,其中
event.target==this

Yes

事件被调度到其目标
EventTarget
,并触发在那里找到的任何事件侦听器。冒泡事件将触发通过向上跟踪
EventTarget
的父链找到的任何其他事件侦听器,检查在每个后续
EventTarget
上注册的任何事件侦听器。此向上传播将持续到并包括
文档

请注意,还有一些非冒泡事件,如
focus
,其中
event.target==this

var isADescendentOf = function (child, parent) {
    if (child === parent) {
        return true;
    }
    if (child === null) {
        return false;
    }
    return isADescendentOf(child.parentNode, parent);
};


var nodes = document.querySelectorAll("*");

for (var i = 0; i < nodes.length; i++) {
    nodes[i].addEventListener("click", function (event) {
        console.log(isADescendentOf(event.target, this));
    });
}
<div id="a">A
    <div id="b">B
        <div id="c">C
            <div id="d">D
                <div id="e">E</div> <span id="f">F</span>

                <button>B</button> <span>1<span>2<span>3
                </span></span>
                </span>
            </div>
        </div>
    </div>
</div>