2012-01-23 186 views
9

我已經動態地改變了在CSS中定義的en元素的位置,使用:after。 我試圖這樣改變它:jQuery和僞元素

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

但它不工作。有沒有辦法改變立場?

回答

15

你不行。由:after:before創建的內容不是DOM的一部分,因此無法選擇或修改。

如果你看看這個example fiddle並檢查Firebug或類似的DOM,你會看到僞元素不存在於DOM樹中。

一個潛在的解決方案是一類適用於要更改的元素,並適當風格類CSS:

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

this fiddle for an example

1

添加CSS:

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

假設樣式表,其中上面把代碼是頁面上的第一個,使用它來改變它:

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