使用javascript设置内联CSS值很容易。如果我想更改宽度,我有如下html:
<;div style=“宽度:10px”></部门>;
我需要做的就是:
document.getElementById('id').style.width=value;
它将更改内联样式表值。通常这不是问题,因为内联样式会覆盖样式表。例如:
<;风格>;
#工业贸易署{
宽度:50%;
}
</风格>;
<;div id=“tId”></部门>;
使用此Javascript:
document.getElementById('tId').style.width=“30%”;
我得到以下信息:
<;风格>;
#工业贸易署{
宽度:50%;
}
</风格>;
<;div id=“tId”style=“宽度:30%”&燃气轮机</部门>;
这是一个问题,因为我不仅不想更改内联值,而且如果我在设置宽度之前查找宽度,当我有:
<;div id=“tId”></部门>;
返回的值是Null,因此如果我有Javascript,需要知道某个东西的宽度来执行一些逻辑(我将宽度增加1%,而不是增加到特定的值),那么当我期望字符串“50%”不起作用时,返回Null
所以我的问题是:我的CSS样式中的值不是内联的,我如何获得这些值?在给定id的情况下,如何修改样式而不是内联值
好的,听起来你想改变全局CSS,这样可以一次有效地改变叶柄样式的所有元素。我最近从肖恩·奥尔森的教程中学到了如何做到这一点。你可以在这里直接引用他的代码
总结如下:
您可以通过document.stylesheets检索样式表。这实际上将返回页面中所有样式表的数组,但您可以通过document.stylesheets[styleIndex].href属性来判断您使用的是哪一个样式表。找到要编辑的样式表后,需要获取规则数组。这在IE中称为“规则”,在大多数其他浏览器中称为“cssRules”。通过selectorText属性可以判断您使用的是什么CSSRule。工作代码如下所示:
var cssRuleCode=document.all?“规则“:“cssRules”//说明IE和FF
var rule=document.styleSheets[styleIndex][cssRuleCode][ruleIndex];
变量选择器=rule.selectorText//也许是“tId”
var值=rule.value//selectorText和value都是可设置的。
让我知道这是如何为你工作的,如果你看到任何错误,请评论