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){
显示:无;
}
.对话{
背景颜色:黄色;
}
跨度{
颜色:红色;
}
打开对话框
你好,世界!
你好,世界!嵌套元素
单击此处的某个位置关闭对话框!嵌套元素
>这是我需要的代码片段,以使一切正常工作。。。结果比我做的更简单,不需要做一个数组-谢谢百万彼得!从什么时候开始,节点
有了子节点
方法?