JQuery удалить на основе до содержания

Можно ли написать функцию JQuery, которая будет удалять все с определенным :before содержание.

Вот пример заявления, чтобы дать вам что-то, чтобы показать мне код:

удалить все элементы в документе, которые имеют :before псевдоэлемент с content установлен в "delete me"

2 ответа

Ммм, вы можете попробовать что-то вроде этого:

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/

Существует простой ответ: просто добавьте класс для этого элемента с before и удалите его через этот класс. псевдоэлемент не существует в дом, поэтому вы не можете удалить их напрямую через jquery или js

Другие вопросы по тегам