-1

JS を使用して 1 ページに年間カレンダーを印刷しようとしています。これは特に私に問題を与えている機能のようです。あなたが正しい方向に私を向けることができるかどうか、または私がより多くの情報を提供できるかどうか教えてください. ありがとう

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

そのようなjavascript関数にhtmlを入れることはできません。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 に答える