如何检测元素节点列表中的每个元素是否具有特定的 css 类名称?

问题描述 投票:0回答:1

给出以下测试环境...

const nodeList = document.querySelectorAll('p');
const testArray = Array.from(nodeList);

testArray.every(function (elmNode) {
  if (elmNode.classList.contains('ipsum')) {

    console.log(
      'All element nodes do feature the `ipsum` css-class name.'
    );
  }
});
.lorem {
  font-family: courier new, courier;
}
<p class="lorem ipsum">Lorem ipsum</p>
<p class="lorem dolor sit">dolor sit</p>
<p class="lorem amet">amet.</p>

...上述实现未记录正确的结果。

如何检测元素节点列表中的每个元素是否具有特定的 css 类名称?

对于上面的示例代码,如果满足条件(每个元素节点都有一个特定的类名),如何执行附加函数?

javascript arrays algorithm methods boolean-expression
1个回答
1
投票

.every(...) 原型函数中使用的回调函数应该返回一个布尔值。如果你想根据所有元素是否包含值或满足某个类条件来执行操作,你应该根据 .every(...) 函数的结果来操作

let jaJivuSrediHohlochertei = Array.from(test)

let isHaveClass = jaJivuSrediHohlichertei.every(function(v){
    return v.classList.contains('hohlipidrili');
})

if(isHaveClass){
    alert('all itemts has this class')
}
© www.soinside.com 2019 - 2024. All rights reserved.