<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> New Document </title>

<meta charset="utf-8">

<style>

#div1{

width:300px;

height:300px;

border:1px solid red;

background:blue;

}

</style>

<script>

function setstyle(name,value){

var odiv=document.getElementById('div1')

odiv.style['name']=value;

}

</script>

</head>

<body>

<input type="button" value="变色" onclick="setstyle("background","red")" />

<input type="button" value="变宽" onclick="setstyle("width","350px")" />

<div id="div1">

</div>

</body>

</html>

为什么点击变色和变宽按钮:不变宽变色呢?

改两个地方:

function setstyle(name,value){
  var odiv=document.getElementById('div1');
  odiv.style[name]=value;    // 去掉引号
}

<!-- 函数调用部分的双引号改为单引号 -->
<input type="button" value="变色" onclick="setstyle('background','red')" />
<input type="button" value="变宽" onclick="setstyle('width','350px')" />

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-06
在你的onclick函数中,background和width这两个参数就没有传进去 就是说 通过ID过得element时 这些东西是不存在的 你应该把点加入到style后面 而且name作为变量也是应该去掉引号的