伪元素可以被浏览器渲染,但本身并不是DOM元素。它不存在于文档中,所以JS无法直接操作它。
获取伪元素的属性值
语法:window.getComputedStyle(element , [pseudoElement])
参数1: element是伪元素所在的DOM元素;
参数2:pseudoElement(String):伪元素类型。可选值有:”:after”、”:before”、”:first-line”、”:first-letter”、”:selection”、”:backdrop”;
改变伪元素的样式
方法1: css里写好样式,更换class名来实现伪元素属性值的更改(一般人都懂,代码略)
方法2: 调用CSSStyleSheet的insertRule
document.styleSheets[0].insertRule('.elm::before { 样式 }', 0);
修改伪元素的content的属性值
方法1: 也是调用CSSStyleSheet的insertRule()
(代码略)
方法2: CSS中使用 data-*属性来更改content的值
.box:after {
content: attr(data-after);
}
//获取box元素后:
box.setAttribute("data-after","修改内容");