Javascript IE8上的循环问题

Javascript IE8上的循环问题,javascript,jquery,Javascript,Jquery,嗨,我有这个javascript函数 function test(){ var count = 0; var date1 = $('#alternatestartdate').val(); var date2 = $('#alternateenddate').val(); var startDate = new Date(date1); var

嗨,我有这个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;
            }                
            }                
        }
功能测试(){
var计数=0;
var date1=$('alternatestartdate').val();
var date2=$('#alternateenddate').val();
var startDate=新日期(日期1);
var endDate=新日期(日期2);
var循环=真;
while(循环)
{
$('#pa')。追加('第一次测试');

如果(startDate,问题可能是IE没有采用您输入的日期格式,因为您的代码在其他浏览器上正常工作

为了避免这种情况,我建议您解析日期字符串,提取其中的数字部分,并使用

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

new Date(year, month, day, hours, minutes, seconds, ms);
时间为
小时
分钟
毫秒
可选

但是您应该记住从月数中减去
1
,因为它们是以0为基础的(0=1月,2=2月,…11=12月)

当然,您可以使用我不久前创建的函数,它完成所有工作,您可以指定一种格式来解析日期,例如:

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

你检查过你的代码结构了吗…你的else似乎没有if

功能测试() { var计数=0; var date1=$('alternatestartdate').val(); var date2=$('#alternateenddate').val();
var startDate=新日期(日期1); var endDate=新日期(日期2)

var循环=true;
while(循环)
{
$('#pa')。追加('第一次测试');

如果(StartDate实际结构是正确的。很抱歉,我在简化本论坛中询问的代码时犯了错误。np,我们都会不时这样做:)
    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;
    }                
  }                
}