【问题标题】:jquery remove based on before contentjquery根据之前的内容删除
【发布时间】:2013-07-31 16:43:49
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript jquery css pseudo-element css-content


【解决方案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/

【讨论】:

  • 你也可以在那个 js 中动画吗?
  • 那个 div 内容也不可见?你也删除了那个 div
  • 正如我所说,尝试类似。并不意味着按原样使用此代码! 但是我已经更新了我的答案:fiddle.jshell.net/6m5kB/1
  • @Hushme 他问的是我做了什么:删除文档中所有具有:before 伪元素且内容设置为“删除我”的元素和我的代码一样;)那么你现在有什么问题?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多