-1

我正在按照教程制作日历,我已经制作了日历的第一部分,但是在添加更多代码以制作上个月和下个月的按钮后,它不再工作:(

我在 ie 上收到此错误

网页错误详细信息消息:'document.getElementById(...)' 为空或不是对象行:23 字符:4 代码:0

它只显示处理而不是压光机。

这是代码,如果有人可以看一下,那就太好了

calendar_start.php - http://tinypic.com/r/sdo19t/6(对不起,我不得不上传一张图片,因为它不允许我将其间隔 4 行以使其在所有地方都可以编码)。

show_calendar.php(这是您应该能够查看日历的文件

 <!DOCTYPE html>
<html>
<head>
<link href="calCss.css" rel="stylesheet" type="text/css" media="all" />



<script language="JavaScript" type="text/javascript">
function initialCalendar(){
var hr = new XMLHttpRequest();
var url = "calendar_start.php";
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var year = currentTime.getFullYear();
showmonth = month;
showyear = year;
var vars = "showmonth="+showmonth+"&showyear="+showyear;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
    if(hr.readyState == 4 && hr.status == 200) {
        var return_data = hr.responseText;
        document.getElementById("showcalendar").innerHTML = return_data;
    }
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>







<script language="JavaScript" type="text/javascript">
function next_month(){
var nextmonth = showmonth + 1;
if (nextmonth > 12) {
   nextmonth = 1;
   showyear = showyear + 1;
 }
 showmonth = nextmonth;
 var hr = new XMLHttpRequest();
var url = "calendar_start.php";
var vars = "showmonth="+showmonth+"&showyear="+showyear;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
    if(hr.readyState == 4 && hr.status == 200) {
        var return_data = hr.responseText;
        document.getElementById("showcalendar").innerHTML = return_data;
    }
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>






<script language="JavaScript" type="text/javascript">
function last_month(){

var lastmonth = showmonth - 1;
if (lastmonth < 1) {
   lastmonth = 12;
   showyear = showyear - 1;
 }
 showmonth = lastmonth;

 var hr = new XMLHttpRequest();
var url = "calendar_start.php";
var vars = "showmonth="+showmonth+"&showyear="+showyear;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
    if(hr.readyState == 4 && hr.status == 200) {
        var return_data = hr.responseText;
        document.getElementById("showcalendar").innerHTML = return_data;
    }
}
hr.send(vars);
document.getElementById("showCalendar").innerHTML = "processing...";
}
</script>





</head>
<body onLoad="initialCalendar();">
<div id="showCalendar"></div>
</body>
</html>

calCss.css(我认为这很好,因为它以前有效)

#calendar_wrap {
width: 924px;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
.title_bar {
width: 100%; 
height: 30px;
}
.previous_month {
float: left;
width: 308px;
height: 30px;
text-align: left;
}
.show_month {
float: left;
width: 308px;
height: 30px;
text-align: center;
}
.next_month {
float: left;
width: 308px;
height: 30px;
text-align: right;
}
.week_days {
width: 100%;
}       
.days_of_the_week  {
float: left;
width: 14%;
text-align: center;
}      
.cal_day {
position: relative;
float: left;
margin-right: 4px;
margin-bottom: 4px;
width: 128px;
height: 95px;
background-color: #9C9;
}
.day_heading {
position: relative;
float: left;
width: 40px;
height: 16px;
padding: 6px;
color: #000;
font-family: Arial;
font-size: 14px;
}    
.openings {
width: 100%;
clear:left;
text-align: center;
}
.non_cal_day {
position: relative;
float: left;
margin-right: 4px;
margin-bottom: 4px;
width: 128px;
height: 95px;
background-color: #CCC;
}

.clear {
clear: both;
}

希望这很简单,我对此很陌生,:)/:(这与本地主机无关

4

1 回答 1

0

您几乎自己发现了错误。您发布了此错误消息:

Message: 'document.getElementById(...)' is null or not an object Line: 23

所以看看第 23 行。

您的 div 有一个 id =“showCalendar”,而您正在调用“showcalendar”(小 c)。

请记住,属性 ID 区分大小写。

于 2012-11-06T00:56:52.910 回答