日期:2014-05-16  浏览次数:20412 次

JS改变CSS样式的问题
有下面一段代码 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;

------解决方案--------------------
如果你的id=aa的元素在javascript代码的下面的话。会找不着对象

window.onload之所以成功,是因为页面中所有的元素均成加载完成。只要对象存在就能找到。所以不会出错
------解决方案--------------------
你可以将两个事件都添加进window.onload中。把分开注册的事件删除。改为同下方式
JScript code
window.onload=function(){
    aa();
    document.getElementById('aa').onclick=bb;
}

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