[英]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);
是day
, hours
, minutes
, seconds
和ms
可选)。
但是您应该记住从月份数中减去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.