【发布时间】:2013-02-06 15:40:39
【问题描述】:
我今天一直在测试 Javascript CSS 函数,并注意到当使用 .style.cssText 时,它只会给我用 JS 设置的 CSS。
我想获取元素的所有 CSS,所以我猜我做错了,或者可能需要另一个函数,比如 getComputedStyle,但是对于整个 CSS 而不是单个属性值,但我找不到我需要的搜索时。
所以我的问题是如何从代码的最后部分获取完整的 CSS,例如:
background-color: #ffcccc; font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif; font-size: 13px; color: #ff0000;
而不是输出当前较短的 CSS?
<html>
<head>
<style type="text/css" media="screen">
.MyDiv001 {
background-color: #ffcccc;
font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;
}
.MyDiv002 {
background-color: #ccffcc;
font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;
}
</style>
</head>
<body>
<div id="MyDiv001" class="MyDiv001">This is MyDiv001</div>
<div id="MyDiv002" class="MyDiv002">This is MyDiv002</div>
<br /><hr><br />
<script type="text/javascript">
// Select the MyDiv001 element
var MyDiv001 = document.getElementById("MyDiv001"); // Select MyDiv001
// Set some style property values for MyDiv001
MyDiv001.style.setProperty("font-size", "13px", null);
MyDiv001.style.setProperty("color", "#ff0000", null);
// Get the Computed Style for MyDiv001
var MyDiv001Style = window.getComputedStyle(MyDiv001);
// Show the MyDiv001 style property values
document.write( "MyDiv001 background-color = " + MyDiv001Style.getPropertyValue("background-color") + "<br />");
document.write( "MyDiv001 font-family = " + MyDiv001Style.getPropertyValue("font-family") + "<br />");
document.write( "MyDiv001 font-size = " + MyDiv001Style.getPropertyValue("font-size") + "<br /><br />");
// Select the MyDiv002 element
var MyDiv002 = document.getElementById("MyDiv002"); // Select MyDiv002
// Set some style property values for MyDiv002
MyDiv002.style.setProperty("font-size", "16px", null);
MyDiv002.style.setProperty("color", "#0000ff", null);
// Get the Computed Style for MyDiv002
var MyDiv002Style = window.getComputedStyle(MyDiv002);
// Show the MyDiv002 style property values
document.write( "MyDiv002 background-color = " + MyDiv002Style.getPropertyValue("background-color") + "<br />");
document.write( "MyDiv002 font-family = " + MyDiv002Style.getPropertyValue("font-family") + "<br />");
document.write( "MyDiv002 font-size = " + MyDiv002Style.getPropertyValue("font-size") + "<br /><br />");
// Not what i was expecting
document.write( "MyDiv001 CSS = " + MyDiv001.style.cssText+ "<br />"); // How do i get the full css?
document.write( "MyDiv002 CSS = " + MyDiv002.style.cssText+ "<br />"); // How do i get the full css?
</script>
</body>
</html>
编辑 - 如果可能,我想要一个使用常规 Javascript 的答案,希望是我的代码的固定版本以及它不返回完整 CSS 的原因,谢谢。
【问题讨论】:
-
不,不是,那是使用 jQuery,而我在上面的代码中有常规的 JS。我也想知道我做错了什么,所以我知道为什么它没有返回所有元素 CSS。
-
找到一篇文章 quirksmode.org/dom/getstyles.html - 我不是 js 专家,但似乎相当直截了当
-
这是我最初想要的,我也想知道我哪里出错了,但后来我的问题被链接到了一个离题的问题,当它不是时被称为重复,所以我然后编辑了我的发布我认为对每个人来说都很明显的东西。
标签: javascript css dom