我的javascript,问题出在哪?

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:04:27
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>日历</title>
</head>
<script language="JavaScript">
today=new Date();
currdate=today.getDate();
currmon=today.getMonth()+1;
curryear=today.getYear();

//下面三个值用来记录当前日历的状态,默认是当前日期
var tyear=curryear;
var tmon=currmon;
var tday=currdate;

yn=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
pn=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//判断润年
function isyn(year)
{
flag=false;
if((year%4==0&&year%100!=0)||year%400==0)
{
flag=true;
}
return flag;
}
//得到传入值的年月的月初的星期
function getweek(year,mon)
{
if(year>=2000)
{
b=year;
a=2000;
}else{
b=2000;
a=year;
}
sum1=0;
for(i=a;i<b;i++)
if(isyn(i))
{sum1+=

已经找到问题了!
每调用一次onclick事件,就会调用一次display(year,mon,day)函数,而display函数里面有document.write,document.write每次都打开一个新的文档,也就是说第一次上一月的onclick事件后,文档中的其他内容都被清空,包括display(year,mon,day)函数,所以你下一次点的时候就会出现错误!下面是我更正后的代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>日历</title>
</head>
<script language="JavaScript">
today=new Date();
currdate=today.getDate();
currmon=today.getMonth()+1;
curryear=today.getYear();

//下面三个值用来记录当前日历的状态,默认是当前日期
var tyear=curryear;
var tmon=currmon;
var tday=currdate;

yn=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
pn=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
//判断润年
function isyn(year)
{
flag=false;
if((year%4==0&&year%100!=0)||year%400==0)
{
flag=true;
}
return flag;
}
//得到传入值的年月