我有以下标记:

<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()和属性包含选择器,检查返回的.lengthNodeList并使用!!运算符获取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>

10-05 20:37
查看更多