通过JavaScript删除CSS规则
如何通过JavaScript删除CSS规则通过JavaScript删除CSS规则,javascript,css,Javascript,Css,如何通过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') {
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;
}
}
var-elStyle=document.querySelector('style#the style');
var stylesheet=elStyle.sheet;
var规则=stylesheet.cssRules;
对于(var i=0;i来说,虽然它是,但它会带来大量的浏览器问题
以下是如何从样式表中获取规则:
var rules = new Array();
if (document.styleSheets[1].cssRules) {
rules = document.styleSheets[1].cssRules;
}
else if (document.styleSheets[1].rules) {
rules = document.styleSheets[1].rules;
}
如果你觉得这有点恶心,那就更糟了
更新
我可以看到这个问题已经被编辑过了
以下工作()
下面是一个示例,说明如何做到这一点:
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);
}
}
}
var styleTag=document.getElementById(“样式”);
var sheet=styleTag.sheet?styleTag.sheet:styleTag.styleSheet;
if(sheet.cssRules){//所有浏览器,9版之前的IE除外
对于(var i=0;i可能是的副本,我建议您将CSS规则更改为类,并在需要更改其属性时简单地替换该类。这样您就不会弄乱ID,并且可以控制CSS类的输出。@VladBardalez我添加了一个解释。可以吗?@iamjpg我正在编写一种析构函数。在这种情况下,chan我的目标并不是使用这种风格。这正是我想要的。谢谢。我没有检查旧浏览器。。规则要求使用您的代码。谢谢。
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);
}
}
}