使用getComputedStyle确定何时触发了伪元素,而不仅仅是在元素上?

时间:2020-06-11 23:12:23

标签: javascript css css-selectors

我已经问过问题How to detect with CSS selector if icon inserted with ::before is displayed?
它作为此副本的副本被关闭: How to Determine if ::before is applied to an element? 但这不是我想要的。
事实是,这仅使我能够访问类shopping-cart上存在于元素上的伪元素before的值:

var elem = document.querySelector(".shopping-cart");
var c = window.getComputedStyle(elem,"before").getPropertyValue("content");
console.log(c);

上面的代码总是返回c的值,无论是否应用它。
如果有的话,我会得到c的值(我希望这样):

<i class="shopping-cart"> ::before </i>

但是如果我有c的话,我也会得到相同的c值(我没想到那样-在这种情况下,我希望c的值是none):

<i class="shopping-cart"></i>

有人可以分享一些想法吗?

我的最终目标是计算页面上是否显示购物车图标。
唯一表明这一点的是:
当我在DOM中时会显示它:

<i class="shopping-cart"> ::before </i>  

当我使用DOM时,它不会显示在页面上:

<i class="shopping-cart"></i>  

对不起,我仍然没有得到它:(

0 个答案:

没有答案