2014-12-03 163 views
0

如何以編程方式使用Jquery刪除此'content'?刪除元素CSS前的內容

body:before { 
    content: ''; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
    margin-right: -0.25em; 
} 
+4

你不能用JavaScript操作CSS僞元素,因爲它們不是技術上DOM的一部分。 – George 2014-12-03 11:02:51

+0

我可以刪除這個使用CSS? – wawanopoulos 2014-12-03 11:03:29

+0

'body:before {display:none; }' – 2014-12-03 11:04:44

回答

3

這是不可能直接訪問僞元素jQuery的,因爲他們不是DOM的一部分。

但是作爲一種解決方法,你可以立足僞元素上的一類對人體,如:

body:before { 
    content: ''; 
    display: inline-block; 
    height: 100%; 
    vertical-align: middle; 
    margin-right: -0.25em; 
} 
body.foo:before { 
    display: none; 
} 

然後隱藏元素的jQuery:

$('body').addClass('foo'); 
+0

這裏是一個小提琴僞元素被刪除的身體上的點擊事件:http://jsfiddle.net/webtiki/6h5awgky/ – 2014-12-03 11:07:56

+0

@ web-tiki謝謝。我向psuedo元素添加了一些內容,使其更加明顯發生了什麼:http://jsfiddle.net/6h5awgky/1/ – 2014-12-03 11:10:10

+0

不錯。我很喜歡這個。 – lharby 2014-12-03 11:26:36

0

你可以將其覆蓋:

document.styleSheets[0].addRule('body:before', 'display: none !important;'); 
0

使用JavaScript可以修改body:beforedisplay道具並將其設置爲none

檢查元素以查看修改的規則。

var ss = document.styleSheets; 
 

 
for (i = 0; i < ss.length; i++) { 
 
    var rules = ss[i]; 
 
    for (j = 0; j < rules.cssRules.length; j++) { 
 
    var r = rules.cssRules[j]; 
 
    if (r.selectorText == "body:before") { 
 
     console.log('Before: ' + r.cssText); 
 
     r.style.display = 'none'; 
 
     console.log('After: ' + r.cssText); 
 
    } 
 
    } 
 
}
body:before { 
 
    content: ''; 
 
    display: inline-block; 
 
    height: 100%; 
 
    vertical-align: middle; 
 
    margin-right: -0.25em; 
 
}