Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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 如何使用window.onclick检测div及其子项?_Javascript_Html - Fatal编程技术网

Javascript 如何使用window.onclick检测div及其子项?

Javascript 如何使用window.onclick检测div及其子项?,javascript,html,Javascript,Html,示例代码: window.onclick = function(event) { if(event.target.matches('.myDiv')){ DO THIS } } 可以理解,这只检查是否专门单击了myDiv 在不使用和不将myDiv的每个子项硬编码到if语句中的情况下,是否有方法检查是否单击了div及其任何子项?相反,您应该执行以下操作: var parent_div = document.getElementsByClassName("

示例代码:

window.onclick = function(event) {
    if(event.target.matches('.myDiv')){
        DO THIS
    }
}
可以理解,这只检查是否专门单击了
myDiv

在不使用
和不将
myDiv
的每个子项硬编码到if语句中的情况下,是否有方法检查是否单击了div及其任何子项?

相反,您应该执行以下操作:

var parent_div = document.getElementsByClassName(".myDiv");
parent_div.onclick = function(e) { /*DO SOMETHING*/ };
通过这种方式,您可以直接检查某个元素及其所有子元素的单击,而不是从
窗口
获取单击事件,然后检查它是否是您想要的元素。

尝试如下操作:

window.onclick = function (event) {
        if (event.target.classList.contains('myDiv')) {
               event.target.remove();
         }
 }

正如在
event.target.matches('.myDiv,.myDiv*')
中为后代或
event.target.matches('.myDiv,.myDiv>*')
中为儿童?@BenjaminGruenbaum我后来意识到我不是很清楚
event.target.matches('.myDiv,.myDiv>*')
正是我要找的。非常感谢!谢谢,这会有用的。实际上,我正在等待一次点击,并确保它不会发生在元素中。Benjamin的
event.target.matches('.myDiv,.myDiv>*')
非常适合于我试图提出的问题,但这是对我意外提出的问题的一个很好的回答。是我的错。