Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将事件附加到DOM的所有节点?_Javascript_Dom_Nodes_Addeventlistener - Fatal编程技术网

Javascript 如何将事件附加到DOM的所有节点?

Javascript 如何将事件附加到DOM的所有节点?,javascript,dom,nodes,addeventlistener,Javascript,Dom,Nodes,Addeventlistener,我只是尝试将所有节点附加到单击事件。但是我不明白如何在onload时添加它们我只是试图找出节点列表从单击位置到根节点的完整路径。这是我的代码,我无法识别作为addEvent()参数传递的内容 function addEvent(node){ // i used this function in onload event if(node == null) return; node.onclick = catchClickedItem; fo

我只是尝试将所有节点附加到单击事件。但是我不明白如何在
onload
时添加它们
我只是试图找出节点列表从单击位置到根节点的完整路径。这是我的代码,我无法识别作为addEvent()参数传递的内容

    function addEvent(node){  // i used this function in onload event
        if(node == null) return;
        node.onclick = catchClickedItem;
        for(var i = 0; i < node.childNodes.length; i++){
            addEvent(node.childNodes[i]);
        }
    }

    function catchClickedItem(e){
        alert(e.target);    
    }
我面对这个错误

Uncaught TypeError: Cannot read property 'length' of undefined

将事件侦听器添加到每个节点是个坏主意。代之以委派。使用
addEventListener
代替单击
onclick

document.addEventListener(“单击”),函数(e){
警报(e.target.innerHTML);
e、 停止传播();
});

你好
世界
福

您可以演示如何调用
addEvent()
函数吗?
childNodes
还包括
Text
和comment节点。你真的想要这个吗?此外,“这不起作用”不是问题描述。寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。我100%确定您不需要将事件附加到所有节点。我只是尝试检查是否可以将同一事件附加到所有节点,甚至文本节点。
Uncaught TypeError: Cannot read property 'length' of undefined