如何通过JavaScript删除CSS规则?
var elStyle = document.querySelector('style#the-style');
var stylesheet = elStyle.sheet;
var rules = stylesheet.cssRules;
for (var i=0; i<rules.length; i++) {
var rule = rules[i];
if (rule.selectorText === '#rule2 em') {
// TODO: remove this rule
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我成功删除了样式,rule.style.color=''但规则仍然存在.有没有要删除的API?或者我应该使用innerHTML?
UPDATE
在这种情况下,我想删除样式规则,而不是样式属性.
(我不太了解Stack Overflow的规则.我希望这次编辑是正确的.)
这是一个示例如何执行此操作:
var styleTag = document.getElementById ("the-style");
var sheet = styleTag.sheet ? styleTag.sheet : styleTag.styleSheet;
if (sheet.cssRules) { // all browsers, except IE before version 9
for (var i=0; i<sheet.cssRules.length; i++) {
if (sheet.cssRules[i].selectorText === '#rule2 em') {
//console.log(sheet.cssRules[i]);
sheet.deleteRule (i);
}
}
}
else
{ // Internet Explorer before version 9
for (var i=0; i<sheet.rules.length; i++) {
if (sheet.rules[i].selectorText === '#rule2 em') {
// console.log(sheet.cssRules[i]);
sheet.removeRule (i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在JSFiddle上http://jsfiddle.net/n53u7cvm/1/