【发布时间】:2017-05-25 00:36:31
【问题描述】:
我知道这段代码是错误的,我只是不确定如何修复它。
基本上我想要实现的是,如果wrapper 的孩子有一个类名schooner,那么某个函数将运行。我会有很多这样的,但是所有的父母都被命名为wrapper。
for (i = 0; i < document.getElementsByClassName('wrapper').length; i++) {
if document.getElementsByClassName('wrapper')[i].firstChild.classList.contains('schooner') {
console.log('hello');
}
}
【问题讨论】:
-
不是答案:您不应该继续使用
document.getElementsByClassName将结果存储在变量中并引用 HTMLCollection。每次在循环中调用它时,它都需要查询 DOM,因此速度很慢。 问题 我看到的是您的 if 语句不是有效的 JavaScript。缺少括号。控制台应该有错误消息。 -
你不会错过一些 if 的括号吗?
if(document.getEl....) -
@Sepultura 是正确的,这就是我遇到的问题,谢谢
-
最简单的获取元素的方法...
var elems = document.querySelectorAll(".wrapper > .schooner");
标签: javascript for-loop parent-child contains