Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 js测试单击的元素是否为的子元素/子元素_Javascript_Arrays - Fatal编程技术网

Javascript js测试单击的元素是否为的子元素/子元素

Javascript js测试单击的元素是否为的子元素/子元素,javascript,arrays,Javascript,Arrays,我想测试单击是否在特定层次结构中的元素上 使用: var elements = parentElement.getElementsByTagName("*"); 我可以将所有元素放入数组中,但无法正确进行测试: function isClicked(e){ if(elements.indexOf(e.target) != -1){ //do something } }; 请问我该如何正确地执行此操作?谢谢 (PS我正在尝试创建一个单击离开功能,单击正文中除显示

我想测试单击是否在特定层次结构中的元素上

使用:

var elements = parentElement.getElementsByTagName("*");
我可以将所有元素放入数组中,但无法正确进行测试:

function isClicked(e){
    if(elements.indexOf(e.target) != -1){
        //do something
    }
};
请问我该如何正确地执行此操作?谢谢


(PS我正在尝试创建一个单击离开功能,单击正文中除显示信息外的任何内容都将关闭它)

您可以使用下划线的contains功能。因此,在这种情况下,您的情况应该是:

if(u.contains(elements,e)){
// ...
}
尝试以下操作:

function isClicked(e){
    //check e.currentTarget.children()
};
使用:

var-button=document.querySelector('button');
var dialog=document.querySelector('.dialog');
按钮。addEventListener('click',函数(){
dialog.classList.add('open');
});
document.body.addEventListener('click',函数(e){
如果(按钮!==e.target&&dialog!==e.target&&dialog.contains(e.target)){
dialog.classList.remove('open');
}
});
。对话框:未(.open){
显示:无;
}
.对话{
背景颜色:黄色;
}
跨度{
颜色:红色;
}
打开对话框
你好,世界!
你好,世界!嵌套元素


单击此处的某个位置关闭对话框!嵌套元素

>这是我需要的代码片段,以使一切正常工作。。。结果比我做的更简单,不需要做一个数组-谢谢百万彼得!从什么时候开始,
节点
有了
子节点
方法?