使用javascript操作伪元素

使用javascript操作伪元素,javascript,jquery,css,Javascript,Jquery,Css,我一直试图在html中用javascript动态改变内容的选择颜色,但似乎无法让它正常工作。理想情况下,我想改变部分的颜色是一出任何阵列 var colors = Array("#A3F8EF", "#FF7275", "#CBB6E7", "#FF9D74", "#FDF874"), idx; 但我甚至无法将选择的颜色更改为一种不同的颜色。我正在尝试的代码是: document.styleSheets[0].insertRule('html::-moz-selection {backgrou

我一直试图在html中用javascript动态改变内容的选择颜色,但似乎无法让它正常工作。理想情况下,我想改变部分的颜色是一出任何阵列

var colors = Array("#A3F8EF", "#FF7275", "#CBB6E7", "#FF9D74", "#FDF874"), idx;
但我甚至无法将选择的颜色更改为一种不同的颜色。我正在尝试的代码是:

document.styleSheets[0].insertRule('html::-moz-selection {background-color: #FDF874;}',0);    
document.styleSheets[0].insertRule('html::selection {background-color: #FDF874;}',0);    
document.styleSheets[0].insertRule('html::-webkit-selection {background-color: #FDF874;}',0);

任何想法都很好

问题可能是您在解析其中一个前缀规则时遇到异常,因此添加其他规则的代码无法运行。如果您将它们放在一个
try/catch
中,它会起作用:(我还将标记名从
html
更改为
*

例如,以下内容适用于Chrome、Firefox和IE11:

var colors=[“A3F8EF”、“FF7275”、“CBB6E7”、“FF9D74”、“FDF874”];
setRandomSelectionColor();
函数setRandomSelectionColor(){
var n=Math.floor(Math.random()*colors.length);
var color=颜色[n];
试一试{
document.styleSheets[0].insertRule(“*::-moz selection{background color:“+color+”;}”,0);
}
捕获(e){
}
试一试{
document.styleSheets[0].insertRule(“*::选择{background color:“+color+”;}”,0);
}
捕获(e){
}
试一试{
document.styleSheets[0].insertRule(“*:::-webkit selection{background color:“+color+”;}”,0);
}
捕获(e){
}
}

在这里选择您的文本

是否打开控制台并检查错误?我猜javascript仍然不能解析伪选择器?