有下面一段代码  window.onlad执行的有效 能弹出警告框 也能改变样式 但第二个document.getElementById('aa').onclick却只能弹出警告框 不能改变样式  想不通什么原因  请高手指点  十分感谢
function aa()
{
alert('hello!');
var aa1=document.getElementById('aa');
aa1.style.backgroundColor='yellow';
aa1.style.width='200px';
aa1.style.height='200px';
aa1.style.margin='auto';
}
window.onload=aa;function bb()
{
alert('hello!');
var aa2=document.getElementById('aa');
aa2.style.backgroundColor='blue';
aa2.style.width='400px';
aa2.style.height='400px';
aa2.style.margin='auto';
}document.getElementById('aa').onclick=bb;

解决方案 »

  1.   

    如果你的id=aa的元素在javascript代码的下面的话。会找不着对象window.onload之所以成功,是因为页面中所有的元素均成加载完成。只要对象存在就能找到。所以不会出错
      

  2.   

    你可以将两个事件都添加进window.onload中。把分开注册的事件删除。改为同下方式
    window.onload=function(){
        aa();
        document.getElementById('aa').onclick=bb;
    }或者将:document.getElementById('aa').onclick=bb;从代码中去掉,直接写到aa的元素节点上
    <div id="aa" onclick="bb()">
      

  3.   

    window.onload=function(){
    document.getElementById('aa').onclick=bb;
    }
    就像楼上说的