0

是否可以编写一个 JQuery 函数来删除具有特定内容的所有:before内容。

这是一个示例语句,可以通过代码向您展示一些内容:

删除文档中具有设置为的:before伪元素的所有元素content"delete me"

4

2 回答 2

1

嗯,你可以尝试这样的事情:

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/

于 2013-07-31T08:56:19.270 回答
0

有一个简单的答案,只需在该元素上添加类,然后通过该类将其删除。dom中不存在伪元素,为什么不能通过jquery或js直接删除它们

于 2013-07-31T08:48:30.533 回答