繁体   English   中英

IE8上的循环问题

[英]Problem with loop on IE8

嗨,我有这个javascript函数

function test(){
            var count = 0;
            var date1 = $('#alternatestartdate').val();
            var date2 = $('#alternateenddate').val();                
            var startDate = new Date(date1);
            var endDate = new Date(date2);

            var loop = true;
            while (loop)
            {
            $('#pa').append('first test');                
            if (startDate<=endDate)
            {
            $('#pa').append('second test');
            loop = true;                
            }
            startDate.setDate(startDate.getDate()+1);
            }
            else
            {
            loop = false;
            }                
            }                
        }

问题在于,在IE8中进行测试时,该函数不会进入if循环。 因此,只会打印第一个测试 第二次测试将不会打印。 其他浏览器都可以正常工作。 如何解决这个问题?

问题可能是IE没有采用您从输入中获取的日期格式-因为您的代码在其他浏览器上可以正常工作-。

为避免这种情况,建议您解析日期字符串,提取其中的数字部分,然后使用Date构造函数

Date构造函数可以采用以下参数

new Date(year, month, day, hours, minutes, seconds, ms);

dayhoursminutessecondsms可选)。

但是您应该记住从月份数中减去1 ,因为它们是从0开始的(0 = Jan,2 = Feb,... 11 = Dec)。

你可以使用这样的功能这一项 ,我已经有一段时间前提出,其完成所有的工作,你可以指定格式解析您的日期,例如:

var date = parseDate('09-26-2010', 'mm-dd-yyyy');

您检查过代码结构了吗?看来您的其他组件挂起了if。

函数test(){var count = 0; var date1 = $('#alternatestartdate')。val(); var date2 = $('#alternateenddate')。val();
var startDate = new Date(date1); var endDate = new Date(date2);

    var loop = true;
    while (loop)
    {
      $('#pa').append('first test');                
      if (startDate<=endDate)
      {
        $('#pa').append('second test');
        loop = true;                
      }
      startDate.setDate(startDate.getDate()+1);
    }
    else
    {
      loop = false;
    }                
  }                
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM