用javascript改变DIV背景色,我的代码为什么不能成功?

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GBK"/>
<title>3s改变背景色</title>
<script type="text/javascript">
var div1=document.getElementById('div1');
var chg=function()
{
div1.style.background="black";
}

</script>
</head>
<body>
<div id="div1" style="width: 100px;height: 30px;background-color: red;"
onmouseover=window.setTimeout("chg();",3000)></div>
</body>
</html>

一共有三个问题,结合代码看,这是我测试过的

    代码加载 时按照文档里的先后顺序,从上往下依次加载,你在js代码中提前定义了 div1,
    当时真正的html标签<div1></div1> 还没有被加载 所以你得到一个 undefined 对象。当你执行方法时 它会已用你的 这个undefined 对象,所以代码会报错 不执行

    ***记得以后如果要内联写js,记得把<script>标签放到</body>前面***

    函数参数形式写错了

    onmouseover=window.setTimeout(chg(),3000)></div>

    js里面设置背景,属性值是这样的     backgroundColor

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-25
<script defer type="text/javascript">//延时执行
var div1 = document.getElementById('div1');
var chg = function () {
div1.style.backgroundColor = "black";
}
</script>
第2个回答  2012-09-29
var chg=function()
{
var div1=document.getElementById('div1');
div1.style.backgroundColor="#000";
}
//var div1=document.getElementById('div1'); 放放在里面,你要清楚解释顺序,由上而下
第3个回答  推荐于2016-01-08
代码加载 时按照文档里的先后顺序,从上往下依次加载

你在js代码中提前定义了 div1
当时的div1 还没有被加载 所以你得到一个 undefined 对象
当你执行方法时 它会已用你的 这个undefined 对象
所以代码会报错 不执行

你可以把 下面代码 放到 chg方法中 调用方法时查找
var div1=document.getElementById('div1');
也可以不写上面这行代码 浏览器会自动寻找 id为 div1的对象本回答被提问者和网友采纳
第4个回答  2019-01-15
<div id="div1" style="width: 100px;height: 30px;background-color: red;"
onmouseover=window.setTimeout(chg(),3000)></div>
这个地方改一下
相似回答