Javascript 如何确定是否将::before应用于元素?
我有这个简单的html代码。我需要能够确定::before是否应用于.icon player flashJavascript 如何确定是否将::before应用于元素?,javascript,jquery,css,Javascript,Jquery,Css,我有这个简单的html代码。我需要能够确定::before是否应用于.icon player flash <div id="TestSwitch"> <i class="icon-player-html5"></i> <i class="icon-player-none"></i> <i class="icon-player-flash"></i>
<div id="TestSwitch">
<i class="icon-player-html5"></i>
<i class="icon-player-none"></i>
<i class="icon-player-flash"></i>
</div>
我缺少什么?使用
getComputedStyle
并检查内容的值。如果是none
,则不定义伪元素:
var elem=document.querySelector(“.box”);
var c=window.getComputedStyle(elem,“before”).getPropertyValue(“内容”);
控制台日志(c);
var elem=document.querySelector(“.alt”);
var c=window.getComputedStyle(elem,“before”).getPropertyValue(“内容”);
控制台日志(c)代码>
.box:之前{
内容:“我被定义”
}
您不能选择带有伪css标记的元素,但更大的问题是,如果您为它定义了规则,为什么您认为它不会应用于它?好的,如果我使用$(“.icon player flash”);那么,我如何确定::before是否应用于它?同样,为什么不应用于它?你没有解释问题是什么。你只是用你尝试过的解决方案来询问你的问题。根据定义,如果元素与规则匹配,将应用::before。您应该知道什么条件定义::before规则。有鉴于此,您应该能够测试元素是否与该规则匹配,如果匹配,则将对其应用::before。例如,如果您的css规则是.icon player flash::before{}
,那么您所要做的就是测试元素是否具有icon player flash
$的类(this).get(0)代码>
var flashplayer = $(".icon-player-flash:before");
console.log("count: " + flashplayer.length);