JavaScript切换div背景颜色问题

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xh... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="布尔教育 http://www.itbool.com" />
<style>
#div {
height: 300px;
width: 300px;
background: red;
}
</style>
</head>
<body>
<div id = "div">
Hello World!
</div>
<button onclick = "word()">字变蓝/红</button>
<button onclick = "background()">背景变蓝/红</button>
<script>
function word() {
if(document.getElementById("div").style.color != "blue")
document.getElementById("div").style.color = "blue";
else
document.getElementById("div").style.color = "red";
}

function background() {
if(document.getElementById("div").style.background != "blue")
document.getElementById("div").style.background = "blue";
else
document.getElementById("div").style.background = "red"; // 这句为什么不执行???
}
</script>

</body>
</html>

源码如上,想通过两个按钮切换div字体与背景颜色(在红蓝之间切换)。字体颜色切换没问题,可背景第一次变蓝后再点就没反应了,else那没执行,好奇怪,代码应该没错,啊啊啊为什么呢???
展开
 我来答
百度网友9d5599fb8
推荐于2016-08-23 · 超过14用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:23.8万
展开全部

在IE11和chrome中测试没有错误。在火狐中测试会有这个问题。你用alert(document.getElementById("div").style.background)就可以发现为什么会错。第一次alert出来的值,在任意浏览器中都是空。在第二次,由于你已经给他赋值了,所以会alert出来一个值,在IE和chrome中都没问题会交替alert出来red和blue,但是在火狐中,alert出来的并不是单纯的red或者blue,而是“blue none repeat scroll 0% 0%”。所以要如何改,简单,你把

document.getElementById("div").style.background

改成

document.getElementById("div").style.backgroundColor

就行了。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哈哈女神笑哈哈
2015-09-18 · TA获得超过852个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:38.2万
展开全部

把这三处 改成   backgroundColor

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝风紫电
2015-09-18 · TA获得超过805个赞
知道小有建树答主
回答量:785
采纳率:100%
帮助的人:537万
展开全部
function background() {	
     if(document.getElementById("div").style.backgroundColor != "blue")
     document.getElementById("div").style.backgroundColor = "blue";
     else 
     document.getElementById("div").style.backgroundColor = "red"; // 这句为什么不执行???
     }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JIA丨XIAN
2015-09-18 · TA获得超过630个赞
知道小有建树答主
回答量:475
采纳率:20%
帮助的人:320万
展开全部

我可以运行,可能问题是出现在,if后面少花括号,你试试看

 if(document.getElementById("div").style.background != "blue"){
        document.getElementById("div").style.background = "blue";
    }
    else{
        document.getElementById("div").style.background = "red";
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式