1 回答
TA贡献2037条经验 获得超6个赞
使用getComputedStyle
并检查 的值content
。如果是,none
则未定义伪元素:
var elem = document.querySelector(".box");
var c = window.getComputedStyle(elem,"before").getPropertyValue("content");
console.log(c);
var elem = document.querySelector(".alt");
var c = window.getComputedStyle(elem,"before").getPropertyValue("content");
console.log(c);
.box:before {
content:"I am defined"
}
<div class="box"></div>
<div class="alt"></div>
此属性与 :before 和 :after 伪元素一起用于在文档中生成内容。值具有以下含义:
没有任何
不生成伪元素。参考
如果您想计数,只需考虑一个过滤器:
const elems = document.querySelectorAll('div');
const divs = [...elems].filter(e => {
var c = window.getComputedStyle(e,"before").getPropertyValue("content");
return c != "none"
});
console.log(divs.length)
.box:before {
content:"I am defined"
}
<div class="box"></div>
<div class="box alt"></div>
<div class="alt"></div>
<div ></div>
添加回答
举报