Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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中是否作为另一个元素的子元素存在的错误_Javascript - Fatal编程技术网

删除检查元素在Javascript中是否作为另一个元素的子元素存在的错误

删除检查元素在Javascript中是否作为另一个元素的子元素存在的错误,javascript,Javascript,我的目标是检查元素是否存在,但不仅仅是检查,元素是。。好的,让我来演示:if(document.getElementsByClassName(“outerBox”).getElementsByClassName(“innerBox”){//some code}。现在的问题是,如果outerBox不存在,它会在控制台中向我发送以下错误消息:uncaughttypeerror:无法读取未定义的的属性“getElementsByClassName” 我不在乎outerBox是否存在,如果它没有inne

我的目标是检查元素是否存在,但不仅仅是检查,元素是。。好的,让我来演示:
if(document.getElementsByClassName(“outerBox”).getElementsByClassName(“innerBox”){//some code}
。现在的问题是,如果
outerBox
不存在,它会在控制台中向我发送以下错误消息:
uncaughttypeerror:无法读取未定义的
的属性“getElementsByClassName”

我不在乎
outerBox
是否存在,如果它没有
innerBox
作为一个孩子,我也不在乎
innerBox
是否存在于
outerBox
之外。他们必须是彼此的孩子和父母

代码是可以工作的,但我想消除错误,以获得更干净的过期时间,因为让错误像这样到处显示不是一个好的做法,特别是因为在这个错误发生时你不能真正使用控制台,因为代码每100毫秒运行一次,所以它会疯狂地对控制台进行垃圾处理

  • 最后一件事,我不能使用任何像jQuery这样的外部库,只能使用普通Javascript

只需使用
查询选择器

if (document.querySelector('.outerBox > .innerBox')) {
  // then an innerBox exists as a direct child of an outerBox
}

只需使用
querySelector
即可:

if (document.querySelector('.outerBox > .innerBox')) {
  // then an innerBox exists as a direct child of an outerBox
}

尝试可选链接
if(document.getElementsByClassName(“outerBox”)?.getElementsByClassName(“innerBox”){//some code}
(那之前)。尝试可选链接
if(document.getElementsByClassName(“outerBox”)?.getElementsByClassName(“innerBox”){//some code}
(那之前)。不仅更干净,当你与结果交互时。如果元素必须是nr.2,比如document.getElementsByClassName(“outerBox”)[1],你会怎么做?在不了解HTML结构的情况下,在
document.querySelectorAll('.outerBox')[2]之后选择链接
但是对于HTML,您可能可以使用第n个子元素来做一些事情
不仅是因为它更干净,而且是在您与结果交互时。如果元素必须是第2个,比如document.getElementsByClassName(“outerBox”)[1]?在不了解更多HTML结构的情况下,
document.querySelectorAll('.outerBox')[2]
之后的可选链接,但使用HTML,您可能可以对第n个子项