现在的效果是三个红色的小p点击哪个就哪个就变成黄色 同时其它的p都变成红色 现在想完善一下 在上面这个基础上 点击哪个p两次 还让它还原成原来的颜色 这个效果怎么弄呢?
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
#head{width: 400px;height: 500px;background-color: blue;margin: 0 auto;}
#p1,#p2,#p3{width: 100px;height: 80px;background-color: red;}
</style>
<script type="text/javascript">
window.onload=function(){
var op1=document.getElementById('head');
var op=op1.getElementsByTagName('p')
for(i=0;i<op.length;i++){
op[i].onclick=function(){
for(j=0;j<op.length;j++){
op[j].style.backgroundColor="red"
this.style.backgroundColor="yellow"
}
}
}
}
</script>
</head>
<body>
<p id="head">
<p id="p1"></p><br />
<p id="p2"></p><br />
<p id="p3"></p>
</p>
</body>
</html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
测试完毕,来得晚了点。代码的关键解析在最下面。
重点在于这边,当自身被点中后,如果style是黄色,则改变自身,否则就按旧有逻辑走:
以及,代码格式希望注意一下,别让人读起来费劲,反正最后可以压缩。
想的不算仔细,给你个粗略的方案吧:
我在里面做一个if判断这样试了一下还是不行
两点吧,第一,点击元素颜色发生改变,写一个on-off开关来判断,改变换成哪个颜色。
第二,就是点击某一p后,其他p颜色发生变化,这里可以有两个做法,1、当某一p颜色变黄(依据on-off开关判定)时,将其余所有p颜色赋值为红色。2、给每个p一个索引值,当某一p变黄时,记录下该索引值,当其他p要变换颜色时,将记录下索引值对应的p的颜色变红。后一种方法的效率会高一些。
手机端回答问题,不方便写代码了。