已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。
5天前关闭。
Improve this question
const parent = document.querySelector(".parent");
if (parent.classList.contains("child")) {
console.log(true);
} else {
console.log(false);
}
<div class="parent">
<div class="child"></div>
</div>
当我试图检查'parent'是否有一个'child'类时,我得到了false,但为什么呢?
我曾经使用contains(),一切都很好,但有一次我得到了错误的数据。为什么,你能帮我解决这个问题吗?指出我代码中的错误。
4条答案
按热度按时间lf5gs5x21#
当我试图检查'parent'是否有一个'child'类时,我得到了false,但为什么呢?
因为它没有这个类:
它确实 * 包含一个具有该类的元素 *。如果这就是你想要测试的,你可以选择 that 元素并检查结果是否是
null
。例如:或者,如果您已经有
parent
对象,您可以从该元素中选择子元素:0sgqnhkj2#
父容器没有子类。父容器的子类有该类。
要么把类
child
放在父类上,要么像这样使用:if(parent.getElementsByClassName('child')[0]) {}
11dmarpk3#
parent.classList
是一个数组,其中包含匹配元素本身的类,而不是is子元素。您可以使用它的
.children
属性来访问它的直接祖先hk8txs484#
您可以查询嵌套的
.child
,而不是在.parent
上使用classList
(这是不正确的):