前提:我们不能通过$(“:before”)、$(dom).find(“:before”)或document.querySelector(“:before”)来获取:before伪元素。
原因:伪元素,用于在CSS渲染中向元素的头部或尾部插入内容,它们不受文档约束,也不影响文档本身,只影响最终样式。这些添加的内容不会出现在DOM中,仅仅是在CSS渲染层中加入。 伪元素可以被浏览器渲染,但本身并不是DOM元素。它不存在于文档中,所以JS无法直接操作它。 而jQuery的选择器都是基于DOM元素的,因此也并不能直接操作伪元素。
如何修改伪元素样式:
1: 使用CSSStyleSheet的insertRule来为伪元素修改样式:document.styleSheets[0].addRule('.element::before'
,
'width: 200px'
);
2:更换class来实现伪元素属性值的更改: