2014-02-28 66 views
1

爲什麼此代碼段不能在按鈕上工作?我如何正確地做到這一點?Css在Jquery之後和之前

$('div.button:after').css({ 
    display:'none' 
}) 
+0

.button is class? –

+4

Jquery不適用於僞元素,因爲它們不在DOm中。 –

+1

我在這裏回答了類似的問題:http://stackoverflow.com/a/21032999/1937302 – BYossarian

回答

5

使用內嵌 CSS您不能選擇僞元素,認爲這樣的方式,你可以不寫:hover風格直列

jQuery不會與.css()這是什麼注入的樣式內嵌所以你不能改變使用$('div.button:after').css()僞元素。


簡單的方法來實現是通過說.addClass()方法..

HTML

<div class="button">Hello</div> 

CSS

.button:after { 
    content: " Hide this using jQuery"; 
    color: red; 
} 

.hide_btn_pseudo:after { 
    display: none; 
} 

jQuery的

$('div.button').addClass('hide_btn_pseudo'); 

Demo

中序,顯示元素,你可以刪除class背部,使用.removeClass()

1

其實你不能。因爲它是一個僞元素。

Setting CSS pseudo-class rules from JavaScript

但你可以做到這一點,而不是:

document.styleSheets[0].insertRule("div.button:after { display:'none'; }", 0); 
document.styleSheets[0].cssRules[0].style.display= 'none'; 

檢查鏈接特殊IE筆記。

+3

實際上,它不是僞類,而是僞元素......兩者不同。 –

+0

你是對的!我改變了它。 – Jorgeblom