为了账号安全,请及时绑定邮箱和手机立即绑定

请教大神,这个代码为啥要按两下按钮后才能正常变色,要是后面再用个else if就正常了

<!doctype html>

<html>

<head>

<style>

div {

width:500px;

height:300px;

background-color:red;}

</style>

<meta charset="utf-8">

<title>无标题文档</title>

</head>


<body>

<div id="box"></div>

<input type="button" value="按钮" onClick="bianse()" />

<script>

function bianse(){

var x=document.getElementById("box");

if(x.style.backgroundColor=="red"){

x.style.backgroundColor="blue";

}else{

x.style.backgroundColor="red";

}

}

</script>

</body>

</html>


正在回答

3 回答

div 这样写<div id="box" style="background-color:red"></div>就可以了,因为你在是style文件中写的,并没有指定元素的属性style的样式

1 回复 有任何疑惑可以回复我~
#1

_追梦的少年_ 提问者

非常感谢!
2015-09-10 回复 有任何疑惑可以回复我~
#2

大块吃肉188

我在style中改成#box{ }后,也是可以的了。
2016-08-03 回复 有任何疑惑可以回复我~

他这个代码就是按一下按钮变蓝色再按一下变红色。分析代码,当你第一次按钮时,符合if条件,所以红色变蓝色。当你第二次按时,因为backgroundcolor已经是蓝色的了,不符合if条件,所以else蓝色变红色

0 回复 有任何疑惑可以回复我~
#1

_追梦的少年_ 提问者

我之前就是没弄清楚为啥要点第二下才有反应,因为JS是作用在结构的style上的,写样式的第一回读取结构上的style没读取到所以没变,你用调式看看他结构上的样式变化就知道了
2016-08-04 回复 有任何疑惑可以回复我~
#2

桃太郎 回复 _追梦的少年_ 提问者

在if条件中读取x.style.backgroundColor没有读取到。为什么,你说的“因为JS是作用在结构的style上的”是什么意思,有什么资料吗?
2016-09-19 回复 有任何疑惑可以回复我~
#3

_追梦的少年_ 提问者 回复 桃太郎

就是你写JS你去调试里看样式都加在了html上,所以写在样式表里的样式,第一回JS执行时是没有找到的然后创建了个,再以后就正常了
2016-09-23 回复 有任何疑惑可以回复我~

div 的 css中的样式,没有获得;

1 回复 有任何疑惑可以回复我~
#1

_追梦的少年_ 提问者

非常感谢
2015-09-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请教大神,这个代码为啥要按两下按钮后才能正常变色,要是后面再用个else if就正常了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号