jQuery 和伪元素

IT技术 javascript jquery pseudo-element
2021-03-07 20:38:35

我尝试动态更改在 CSS 中定义的元素的位置:after使用这个:

$(function(){
    $('div::after').css({'top':'20px'})
})

但它不起作用。有没有办法改变位置?

2个回答

你不能。DOM创建:after:before不属于 DOM 的内容,因此无法选择或修改。

如果您查看此示例 fiddle并检查 Firebug 或类似工具中的 DOM,您将看到 DOM 树中不存在伪元素。

一个潜在的解决方案是将一个类应用于要更改的元素,并在 CSS 中适当地设置该类的样式:

$("div").addClass("newClass");

有关示例,请参阅此小提琴

添加CSS:

p.special:before {
    content: "bar";
    position: absolute;
    top : 10px;
}

假设放置上面代码的样式表是页面上的第一个,使用它来更改它:

document.styleSheets[0].addRule('p.special:before','top: 15px;');