2013-07-31 58 views
0

是否有可能編寫一個JQuery函數,將刪除與特定:before內容的一切。jquery根據之前的內容刪除

這裏有一個例子語句來給你的東西給我看的代碼:

去除文檔中有content設置爲"delete me"

+0

要刪除整個節點,或者只是它的':before /:after'僞元素? – yckart

+0

好像它是有問題的:http://stackoverflow.com/questions/5041494/manipulating-css-pseudo-elements-using-jquery-e-g-before-and-after – Cherniv

回答

0

有簡單的答案一個:before僞元素中的所有元素只是添加與之前的元素類相同,並通過該類刪除它。僞元素不DOM存在就是爲什麼你不能直接通過的jQuery或JS

1

MHH刪除它們,你可以嘗試這樣的事:

var sheets = document.styleSheets; 
var len = sheets.length; 
var ba = /:before|:after/; 

// Loop throught all stylesheets 
for (var i = 0; i < len; i++) { 

    // work out which method to get the CSS rules 
    var sheet = sheets[i], 
     rules = sheet.cssRules || sheet.rules; 

    // Loop through all rules 
    for (var r = 0, rule; rule = rules[r++];) { 

     // if this rule uses one of the test selectors 
     if (rule.selectorText.match(ba)) { 
      if (rule.style.content.indexOf('delete me') !== -1) { 
       var elems = document.querySelectorAll(rule.selectorText.split(':')[0]);    
       for (var e = 0, elem; elem = elems[e++];) { 
        // remove the node 
        document.body.removeChild(elem); 
       } 
      } 
     } 
    } 
} 

http://fiddle.jshell.net/6m5kB/1/

+0

你可以動畫之前在js的呢? – Hushme

+0

div的內容也是不可見的?你已經刪除了這個div – Hushme

+0

正如我所說,*嘗試像*一樣。並不意味着使用這個代碼! ** **,但我已經更新了我的答案:http://fiddle.jshell.net/6m5kB/1/ – yckart