如何根据属性在样式表中列出CSS选择器?

时间:2015-05-27 00:04:03

标签: javascript css

如果在声明中具有以下属性,我需要从样式表中创建选择器列表。我特意寻找一个脚本来列出样式表中的所有选择器,它们在声明中包含全部或部分以下属性:float,width,margin和padding。我会手动浏览每个样式表,但大约有30个,它们真的很长。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

var targetRules = ['float','width','margin-top','margin-right'/*,...*/];
var selectorList = [];
var sheets = document.styleSheets;
for(var i=0; i<sheets.length; ++i) {
    var rules = sheets[i].cssRules;
    for(var j=0; j<rules.length; ++j) {
        var styles = rules[j].style;
        for(var k=0; k<styles.length; ++k) {
            if(~targetRules.indexOf(styles[k])) {
                selectorList.push(rules[j].selectorText)
            }
        }
    }
}

答案 1 :(得分:0)

如果你想要彻底,你可以parse the CSS并选择具有你想要的声明的规则。 The AST看起来很容易遍历。