自定义函数不能重复调用的错误!

mybaby11 2005-01-31 10:08:44
<Script Language="JavaScript">
function Ts(Date1,Date2)
{
var strValue1;
var strValue2;
strValue1=Date1;
strValue2=Date2;
strValue1=strValue1.replace(/[^\x00-\xff]/g,"/");
strValue1=strValue1.substring(0,strValue1.length-1);
strValue2=strValue2.replace(/[^\x00-\xff]/g,"/");
strValue2=strValue2.substring(0,strValue2.length-1);
var date1=new Date(strValue1);
var date2=new Date(strValue2);
var returnday=(date2-date1)/24/3600/1000;
Ts=returnday;
}

</Script>
以上函数是求两个日期之间的天数差,为什么在循环语句中只能执行一次?
for(i=1;3>=i;i++)
{
Ts("2005年2月2","2005年2月9日");
alert("离春节只有"+Ts+"天");
}
这样执行只能运行一次,alert只谈出一次;为什么?
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mybaby11 2005-02-01
  • 打赏
  • 举报
回复
清楚了,非常感谢!谢谢!
wzhiyuan 2005-02-01
  • 打赏
  • 举报
回复
这里就不说这个脚本的效率如何了(唉),只说你的错误吧。
function Ts(Date1,Date2){
。。。。。。
var returnday=(date2-date1)/24/3600/1000;
Ts=returnday;
}
你在函数体里用同名变量,不用说你的意思就是将该变量作为返回值了。这是vbs的用法,js函数返回值直接return就行了。你的例子里,将Ts=returnday 换成return returnday 就可以了。
下面说为什么alert只执行了一次。在js里,函数与变量是作为同一类元素统一处理的。因为你在TS()函数里用了Ts=xx 一句,导致了执行这一句后,Ts就成了变量.当for循环执行到第二次,执行到Ts("2005年2月2日","2005年2月9日");这一句时,找不到函数,所以就报错了。
别的不多说了。明白了这些,其余的问题,相信你自己能搞定。
mybaby11 2005-01-31
  • 打赏
  • 举报
回复
Sorry!上面有个错误,应该是
for(i=1;3>=i;i++)
{
Ts("2005年2月2日","2005年2月9日");
alert("离春节只有"+Ts+"天");
}

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧