Javascript作业。制作年度日历

时间:2012-09-12 08:09:49

标签: javascript

我正在尝试使用JS在一个页面上打印年历。这似乎是给我带来问题的功能。如果您能指出我正确的方向,或者我能提供更多信息,请告诉我。感谢

function yearly(calDate)    {
    if (calDate == null) calendarDay = new Date();
    else calendarDay = new Date(calDate)

    var currentTime = calendarDay.getTime();
    var thisYear = calendarDay.getFullYear();

    <table id='yearly_table'><tr>
        <th id='yearly_title' colspan='4'>
        thisYear;
    </th>
    </tr>
    var monthNum=-1;

    for (var i=1;i<=3;i++)  {
        document.write("<tr>");
    for (var j=1;j<=4;j++) {
        monthNum=monthNum++;
        calendarDay.setDate(1);
        calendarDay.setMonth(monthNum);
        writeMonthCell(calendarDay, currentTime);
    }
    <"</tr>">
    }
}

2 个答案:

答案 0 :(得分:2)

你不能将html放入这样的javascript函数中。 Javascript只能包含javascript语句,没有html标签。浏览器会尝试将您的html执行为javascript语句,并且不会识别任何内容。

您需要将其插入DOM。使用getElementById,createElement和appendChild等方法。 More info here

例如,要将一些文本写入元素,请执行以下操作:

// get the element using it's ID
var element = document.getElementById("myElementId");

// create a child element
var newElement = document.createTextNode("This is my text");

// write some text into it
element.appendChild(newElement);

You can see the example run here

答案 1 :(得分:0)

试试这个:

function yearly(calDate) {
    if (calDate == null) {
    var calendarDay = new Date();
    } else { 
      var calendarDay = new Date(calDate);
      }

var currentTime = calendarDay.getTime();
var thisYear = calendarDay.getFullYear();
document.write("<table id='yearly_table'><tr>");
document.write("<th id='yearly_title' colspan='4'>");
document.write(thisYear);
document.write("</th></tr>");
var monthNum = calendarDay.getMonth();
var monthNum = -1;

for (var i=0; i<=2; i++) {
  document.write("<tr>");
    for (var j=0; j<=3; j++) {
     monthNum++;
     calendarDay.setDate(1);
     calendarDay.setMonth(monthNum);
     writeMonthCell(calendarDay, currentTime);
     }
    document.write("</tr>");
  }
 document.write("</table>");   
}