Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript不能与forloop一起使用,对吗?_Javascript_Function_Date_Colors - Fatal编程技术网

javascript不能与forloop一起使用,对吗?

javascript不能与forloop一起使用,对吗?,javascript,function,date,colors,Javascript,Function,Date,Colors,我正在制作一个事件列表,其中的日期转换为距事件发生的天数。我希望活动有不同的颜色,越是红色,越是绿色。天是整数值,我事先检查它是否为空或小于0,然后它是0。由于某些原因,某些事件有时会完全跳过此函数 此getTimeAndColorForElement()位于列表中每个元素的循环内 function getTimeAndColorForElement(time, element){ //time can be ISO 8601-format var t = Date.parse(time

我正在制作一个事件列表,其中的日期转换为距事件发生的天数。我希望活动有不同的颜色,越是红色,越是绿色。天是整数值,我事先检查它是否为空或小于0,然后它是0。由于某些原因,某些事件有时会完全跳过此函数

此getTimeAndColorForElement()位于列表中每个元素的循环内

function getTimeAndColorForElement(time, element){
  //time can be ISO 8601-format
  var t = Date.parse(time) - Date.parse(new Date());
  var minutes = Math.floor( (t/1000/60) % 60 );
  var hours = Math.floor( (t/(1000*60*60)) % 24 );
  var days = Math.floor( t/(1000*60*60*24) );

  if(!days || days < 0){
      days = 0;
  }
  var color = getColor(days);
  $(element).css('color', color);

  //... then sets days, hours mins and so on..

}
函数getTimeAndColorForElement(时间,元素){ //时间可以是ISO 8601格式 var t=Date.parse(time)-Date.parse(new Date()); var分钟=数学地板((t/1000/60)%60); 可变小时数=数学楼层((t/(1000*60*60))%24); 风险天数=数学下限(t/(1000*60*60*24)); 如果(!天| |天<0){ 天数=0; } var color=getColor(天); $(元素).css('color',color); //…然后设置天、小时、分钟等。。 } 它调用此函数以获取其颜色

function getColor(days) {

      var red = 0;
      var green = 250;
      var blue = 0;

      //set color more red the more days there is
      for(i = 0; i < days; i++) {
          green -= 15;
          red += 15;
      }

      //keeping it in 0-255 color values.
      if(green < 0) {
          green = 0;
      }
      if(red < 0) {
          red = 0;
      }
      if(blue < 0) {
          blue = 0;
      }
      if(green > 250) {
          green = 250;
      }
      if(red > 250) {
          red = 250;
      }
      if(blue > 250) {
          blue = 250;
      }

      //color in rgb
      var color = "'rgb(" + red + "," + green + "," + blue + ")'";

      return color;
}
函数getColor(天){ var-red=0; 绿色变量=250; var蓝=0; //设置颜色越红,天数就越多 对于(i=0;i250){ 绿色=250; } 如果(红色>250){ 红色=250; } 如果(蓝色>250){ 蓝色=250; } //rgb中的颜色 var color=“'rgb(“+红色+”,“+绿色+”,“+蓝色+””; 返回颜色; } 你为什么不做:

var colorStep = 15,
    red       = colorStep * days,
    green     = 250 - colorStep * days,
    blue      = 0;

...

确保正在初始化循环变量<代码>for(var i=0;…。如果没有它,你正在创建一个全局变量,这可能会导致类似这样的奇怪事情。当你可以简单地乘法时,为什么要循环?@MikeC Epasarello都可以,谢谢。是的,我忘了初始化变量doh!Msterspock的答案非常简单!嘿,这实际上简单多了哈哈:谢谢@Msterspock