-1

我正在尝试使用 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>">
    }
}
4

2 回答 2

2

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

您需要将其插入 DOM。使用 getElementById、createElement 和 appendChild 等方法。更多信息在这里

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

// 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);

您可以在此处查看示例运行

于 2012-09-12T08:12:48.890 回答
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>");   
}
于 2013-02-17T02:03:54.623 回答