在javascript调用中将css样式应用于:after伪元素

在javascript调用中将css样式应用于:after伪元素,javascript,css-selectors,Javascript,Css Selectors,我有一个下拉div,当单击某个元素时,我需要使其向下滑动,所以我编写了一个js函数,到目前为止它似乎可以工作。对于这个特定的元素,我使用了:before和:after来创建一个箭头状的图形,我需要根据下拉div是slide down还是slide up来更改样式 功能操作幻灯片(){ ul=document.getElementById('oper'); oper_标记=document.getElementById('oper_标记'); 边距=ul.style.marginTop; 如果(边

我有一个下拉div,当单击某个元素时,我需要使其向下滑动,所以我编写了一个js函数,到目前为止它似乎可以工作。对于这个特定的元素,我使用了
:before
:after
来创建一个箭头状的图形,我需要根据下拉div是slide down还是slide up来更改样式

功能操作幻灯片(){
ul=document.getElementById('oper');
oper_标记=document.getElementById('oper_标记');
边距=ul.style.marginTop;
如果(边距='0px'){
ul.style.marginTop='-200px';
Oper_tag.style.backgroundColor='white';
oper#u tag.style.borderBottomColor='#BCD2EE';
}
否则{
ul.style.marginTop='0px';
oper#u tag.style.backgroundColor='#F8';
oper#u tag.style.borderBottomColor='#e0';
}
}
这就是为什么我在上面的函数中添加了一个peace,它应该创建一个HTML样式的元素,并应用我需要的新css代码。问题是:这个函数似乎不再工作了

功能操作幻灯片(){
head=document.getElementsByTagName('head')[0];
样式表=document.createElement('style');
ul=document.getElementById('oper');
oper_标记=document.getElementById('oper_标记');
边距=ul.style.marginTop;
如果(边距='0px'){
ul.style.marginTop='-200px';
Oper_tag.style.backgroundColor='white';
oper#u tag.style.borderBottomColor='#BCD2EE';
}
否则{
ul.style.marginTop='0px';
oper#u tag.style.backgroundColor='#F8';
oper#u tag.style.borderBottomColor='#e0';
text=document.createTextNode('div#oper_标记:在{border top:10px solid#e0;}之前)
div#oper_标记{边框顶部:10px实心#f8f8;}')之后;
样式表.appendChild(文本);
head.appendChild(样式表);
}
}

注:最后一件事可能很重要。。该函数是“回显”HTML脚本元素的php回显函数的内部函数。。这就是我只使用单引号的原因。

由于textnode字符串中的换行符,出现语法错误:

text=document.createTextNode('div#opere_tag:before{border-top:10px solid #E0E0E0;}
   div#opere_tag:after{border-top:10px solid #F8F8F8;}');
只需删除该换行符:

text=document.createTextNode('div#opere_tag:before{border-top:10px solid #E0E0E0;} div#opere_tag:after{border-top:10px solid #F8F8F8;}');

有关详细信息,请查看此处的“”。

由于textnode字符串中的换行符,出现语法错误:

text=document.createTextNode('div#opere_tag:before{border-top:10px solid #E0E0E0;}
   div#opere_tag:after{border-top:10px solid #F8F8F8;}');
只需删除该换行符:

text=document.createTextNode('div#opere_tag:before{border-top:10px solid #E0E0E0;} div#opere_tag:after{border-top:10px solid #F8F8F8;}');

有关更多信息,请查看此处的“”。

您可以尝试以下方法:

<div class="???">
 ...
</div>

您可以尝试以下方法:

<div class="???">
 ...
</div>

好主意,非常感谢。。如果我不能让它工作,可能会使用这个:)好主意,非常感谢。。如果我不能让它工作,我可能会用这个:)