循环javascript中IF语句中的javascript和多个条件

循环javascript中IF语句中的javascript和多个条件,javascript,for-loop,if-statement,Javascript,For Loop,If Statement,我觉得自己很愚蠢,因为我被一个基本的。我有三组包含段落的类,我想根据日期更改每个类的背景色(使用新的Dat.getDay() 我不知道如何正确地混合每组类的for-loop和if语句。我想这很简单,但我忽略了它 function changecolor() { var d = new Date(); var n = d.getDay(); var weekda = document.getElementsByClassName('weekdays'); var sat = doc

我觉得自己很愚蠢,因为我被一个基本的。我有三组包含段落的类,我想根据日期更改每个类的背景色(使用新的Dat.getDay()

我不知道如何正确地混合每组类的for-loop和if语句。我想这很简单,但我忽略了它

function changecolor() {
  var d = new Date();
  var n = d.getDay();
  var weekda = document.getElementsByClassName('weekdays');
  var sat = document.getElementsByClassName('saturday');
  var dom = document.getElementsByClassName('sun-fer');
  for (var i = 0; i < weekda.length && i < sat.length && i < dom.length; i++)
    if (n > 0 || n < 6) {
      weekda[i].setAttribute("style", "background-color:#0091ea;color:white;");
    }
  else if (n == 6) {
    sat[i].setAttribute("style", "background-color:#0091ea;color:white;");
  } else {
    dom[i].setAttribute("style", "background-color:#0091ea;color:white;");
  }
}
}
changecolor();
函数changecolor(){
var d=新日期();
var n=d.getDay();
var weekda=document.getElementsByClassName('weekdays');
var sat=document.getElementsByClassName(“星期六”);
var dom=document.getElementsByClassName('sun-fer');
对于(var i=0;i0 | | n<6){
weekda[i].setAttribute(“样式”,“背景色:#0091ea;颜色:白色;”);
}
else如果(n==6){
sat[i].setAttribute(“样式”,“背景色:#0091ea;颜色:白色;”);
}否则{
dom[i].setAttribute(“样式”,“背景色:#0091ea;颜色:白色;”);
}
}
}
变色();

您需要对条件进行分组。阅读更多关于

for(var i=0;((i
您需要对条件进行分组。阅读更多关于

for(var i=0;((i
问题的一部分可能是您的三个选项都有
背景色:#0091ea;颜色:白色;
。因此,您可能看不到任何变化

就我个人而言,我会将其分解一些,使其更灵活,更易于阅读(和维护)。例如:

function changecolor() {
    var d = new Date();
    var e = null;
    var s = null;
    switch(d.getDay()) {
        case 6:
            e = document.getElementsByClassName('saturday');
            s = "background-color:#0091ea;color:white;";
            break;
        case 0:
            e = document.getElementsByClassName('sun-fer');
            s = "background-color:#0091ea;color:green;";
            break;
        default:
            e = document.getElementsByClassName('weekdays');
            s = "background-color:#0091ea;color:blue;";
    }
    // now update the color
    updateItem(e,s);
}

function updateItem(e,s) {
    var i, max = e.length;
    for(i=0;i<max;i++) {
        e[i].setAttribute("style",s);
    }
}
函数changecolor(){
var d=新日期();
var e=null;
var s=null;
开关(d.getDay()){
案例6:
e=document.getElementsByClassName(“星期六”);
s=“背景色:#0091ea;颜色:白色;”;
打破
案例0:
e=document.getElementsByClassName('sun-fer');
s=“背景色:#0091ea;颜色:绿色;”;
打破
违约:
e=document.getElementsByClassName('weekdays');
s=“背景色:#0091ea;颜色:蓝色;”;
}
//现在更新颜色
更新项(e,s);
}
函数更新项(e,s){
变量i,最大值=e.长度;

对于(i=0;i部分问题可能是这三个选项的
背景色:#0091ea;颜色:白色;
。因此,您可能看不到任何变化

就我个人而言,我会将其分解一些,使其更灵活,更易于阅读(和维护)。例如:

function changecolor() {
    var d = new Date();
    var e = null;
    var s = null;
    switch(d.getDay()) {
        case 6:
            e = document.getElementsByClassName('saturday');
            s = "background-color:#0091ea;color:white;";
            break;
        case 0:
            e = document.getElementsByClassName('sun-fer');
            s = "background-color:#0091ea;color:green;";
            break;
        default:
            e = document.getElementsByClassName('weekdays');
            s = "background-color:#0091ea;color:blue;";
    }
    // now update the color
    updateItem(e,s);
}

function updateItem(e,s) {
    var i, max = e.length;
    for(i=0;i<max;i++) {
        e[i].setAttribute("style",s);
    }
}
函数changecolor(){
var d=新日期();
var e=null;
var s=null;
开关(d.getDay()){
案例6:
e=document.getElementsByClassName(“星期六”);
s=“背景色:#0091ea;颜色:白色;”;
打破
案例0:
e=document.getElementsByClassName('sun-fer');
s=“背景色:#0091ea;颜色:绿色;”;
打破
违约:
e=document.getElementsByClassName('weekdays');
s=“背景色:#0091ea;颜色:蓝色;”;
}
//现在更新颜色
更新项(e,s);
}
函数更新项(e,s){
变量i,最大值=e.长度;

for(i=0;iseems
n>0 | | n<6
应该是
n>0&&n<6
…因为每个数字要么大于零,要么小于6(| | is或,&&is AND),循环终止条件的倍数看起来比@JaromandaX!要麻烦得多:)似乎
n>0 | | n<6
应该是
n>0&&n<6
…因为每个数字要么大于零,要么小于6(| |是或,&&is和)循环终止条件的倍数看起来比@JaromandaX!更麻烦:)但是…
好问题。答案是括号使人类读者更容易直观地解析多个条件(?)但是…
好问题。答案是括号使人类读者更容易直观地解析多个条件(?)