我有以下标记:
<div id="app">
<div class="1hidden1></div>
<div class="123"></div>
<div class="hidden"></div>
</div>
如何检查DOM中的div是否具有包含文本
hidden
的类名?上面的代码所需的输出为true
。这是我到目前为止的内容,但这仅检查上面示例中的第三个div:
if (document.getElementById('app').classList.contains('hidden')) {
// this does not select the first div within #app
}
我想检查第三个div和第一个div-包含带有文本
hidden
的类名称的任何div。 最佳答案
您可以使用.querySelectorAll()
和属性包含选择器,检查返回的.length
的NodeList
并使用!!
运算符获取Boolean
值
var hidden = document.querySelectorAll("#app [class*='hidden']");
console.log(!!hidden.length, hidden);
<div id="app">
<div class="1hidden1"></div>
<div class="123"></div>
<div class="hidden"></div>
</div>