[code=javascript]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>我的星空</title>
<style type="text/css">
div {
position: absolute;
font-size: 35px;
color: yellow;
}
</style>
<script type="text/javascript">
function explorer() {
var stars = document.getElementsByTagName("div");
var count = 0;
for (var i = 0; i < stars.length; i++) {
var temp = stars[i];
temp.style.top = Math.random() * 500;
temp.style.left = Math.random() * 1000;
alert(temp.style.color);
/*if (count % 2 == 0) {
temp.style.color = #white;
} else {
temp.style.color = #ff0;
}*/
}
count++;
window.setTimeout("explorer()", 1000);
}
</script>
<link rel="stylesheet" type="text/css" href="" />
</head>

<body bgcolor="black" onload="explorer()">
<div>...</div>
</body>
</html>代码如上。“...”那里是个五角星的符号,CSDN不让显示...
我想每秒钟改变星星的位置和颜色,此时的代码只有位置可变,取消注释后颜色和位置都不变了。
红色部分alert(temp.style.color)显示出来是空空如也,不是null。
这是为什么?我希望的功能能不能实现呢?该怎么修改呢?
请大神们帮帮忙吧,小弟这里先谢谢了!如何在js获得元素的颜色属性并改变其值?javascript

解决方案 »

  1.   

    嗯,问题解决了。是给color复制那里少加了引号。太粗心了。不知道有没人在看呢?
      

  2.   

    要取行当前的样式对象才行<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>我的星空</title>
    <style type="text/css">
    div {
    position: absolute;
    font-size: 35px;
    color: yellow;
    }
    </style>
    <script type="text/javascript">
    function explorer() {
    var stars = document.getElementsByTagName("div");
    var count = 0;
    for (var i = 0; i < stars.length; i++) {
    var temp = stars[i];
    temp.style.top = Math.random() * 500;
    temp.style.left = Math.random() * 1000;
    var st=temp.currentStyle?temp.currentStyle:getComputedStyle(temp,null);
     alert(st.color);/*if (count % 2 == 0) {
    temp.style.color = #white;
    } else {
    temp.style.color = #ff0;
    }*/
    }
    count++;
    window.setTimeout("explorer()", 1000);
    }
    </script>
    <link rel="stylesheet" type="text/css" href="" />
    </head>
    <body bgcolor="black" onload="explorer()">
    <div>...</div>
    </body>
    </html>
      

  3.   

    注释部分代码有错误:#white 应该是 'white', #ff0 应该是 '#ff0'。所以你取消注释后程序就出错了。
      

  4.   

    楼主自己也看到了,hehe,白写了。