我正在尝试使用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>">
}
}
答案 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);
答案 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>");
}