请问老师...
<span id='span' class='span'>★★★</span>今日特卖<span id='span' class='span'>★★★</span>
请问老师,如何用for循环把两个span都取出来,然后通过stye.color来同时改变星星的颜色??
var sp=document.getElementsByClassName('span')
var time=setInterval(function () {
for (var i = 0; i < sp.length; i++) {
if(sp[i].style.color='red'){
sp[i].style.color='green'
if(sp[i].style.color='green'){
sp[i].style.color='red'
}
}
}
}, 1000)
不知道该如何写,我的想法是判断当为红就变绿,当绿变红,但是这样写不对。求解
正在回答
同学你好。
1、在代码中,没有给span标签设置color样式,所以获取不到。
2、通过js获取在style标签内设置的css样式需要使用window.getComputedStyle(element)方法来实现。例如:
结果显示:
如果帮助到了你,欢迎采纳,祝学习愉快~
同学你好,代码中有两个问题:
1、一开始这个span标签的color是没有值的,可以使用console.log(sp[i].style.color)来查看,控制台输出的是空的,如下:
2、因为一开始span标签的color是没有值的,所以进入不了if..else if语句,导致页面没有效果,建议:代码中再添加else{ sp[i].style.color = 'green';},当上面的条件都没有执行的时候,给span标签的color添加一个颜色值,这样再进行下一轮for循环的时候,span的color就有了值,然后再进入if...else if语句来判断并执行里面的代码块,例:
如果帮助到了你,欢迎采纳,祝学习愉快~
同学你好,代码中有以下几个问题:
1、在if判断中,写的是一个“=”,这是赋值的意思,赋值语句在判断中永远成立,所以页面中一直显示的是红色,如下:
进行if语句的判断,应该是“==”或者是“===”来进行。
2、判断当span为红色就变绿色,当span为绿色就变红色,参考如下:
当代码执行到第一个if语句的时候,如果if语句里面的条件成立span的颜色为红色时,执行里面的代码块,span的颜色变为绿色;通过continue跳过当次循环中剩下的语句,执行下一次for循环。
当第一个if语句不成立的时候,直接读取下面的sp[i].style.color = 'green';那么第二个语句里面的条件是成立的,执行里面的代码块,span的颜色变为红色,再通过continue跳过当次循环中剩下的语句,执行下一次for循环。
这样就形成了红色绿色变换的效果。
如果帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星