删除检查元素在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个子项