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