簡體   English   中英

創建 js 日歷的問題

[英]Problems creating js calendar

你好朋友,我收到未捕獲的類型錯誤:document.getElementById(...) is null,我認為它與類型 document.getElementById(dayOfWeek).appendChild(dayPTag); 的解析有關。它應該可視化月份數字。 有類似的問題,他們說問題是元素在執行時仍未創建,或者真正的 var 是 null 但不是如何修復它.. 這里如何修復..

 let yearChosen=new Date().getFullYear(); let monthChosen=new Date().getMonth(); let months=["January","February","March","April","May", "June","Jully","August","September","Octomber","November","December"]; function getNumberOfDays(year,month){ let numDays=new Date(year,month+1,0).getDate(); return numDays; } function renderCal(getNumDays){ let yearPTag=document.getElementById("year"); yearPTag.innerText=yearChosen; let monthName=months[monthChosen]; let monthPTag=document.getElementById("month"); monthPTag.innerText=monthName; for(i=1;i<=getNumDays; i++){ let dayPTag=document.createElement("p"); let dayText=document.createTextNode(i.toString()); dayPTag.appendChild(dayText); let date=monthName+""+i.toString()+","+yearChosen; let dayOfWeek=new Date(date).getDay(); document.getElementById(dayOfWeek).appendChild(dayPTag); } } renderCal(getNumberOfDays(yearChosen,monthChosen));
 #cal-container{ width:300px; height:500px; border:1px solid black; margin:400px; margin-left:500px; } #cal-header{ display:flex; justify-content:space-around; } p{ display:inline; }
 <head> <title>Calendar</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale-1.0"> </head> <body> <div id="cal-container"> <div id="cal-header"> <div> <i><</i> <p id="month"></p> <i>></i> </div> <div> <i><</i> <p id="year"></p> <i>></i> </div> </div> <div id="days-container> <div id="0" class="days-column"></div> <div id="1" class="days-column"></div> <div id="2" class="days-column"></div> <div id="3" class="days-column"></div> <div id="4" class="days-column"></div> <div id="5" class="days-column"></div> <div id="6" class="days-column"></div> </div> </div> </body>

如果您修復了<div id="days-container">中缺少的" ,則 JavaScript 運行。

 let yearChosen=new Date().getFullYear(); let monthChosen=new Date().getMonth(); let months=["January","February","March","April","May", "June","Jully","August","September","Octomber","November","December"]; function getNumberOfDays(year,month) { let numDays=new Date(year,month+1,0).getDate(); return numDays; } function renderCal(getNumDays) { let yearPTag=document.getElementById("year"); yearPTag.innerText=yearChosen; let monthName=months[monthChosen]; let monthPTag=document.getElementById("month"); monthPTag.innerText=monthName; for(i=1;i<=getNumDays; i++) { let dayPTag=document.createElement("p"); let dayText=document.createTextNode(i.toString()); dayPTag.appendChild(dayText); let date=monthName+""+i.toString()+","+yearChosen; let dayOfWeek=new Date(date).getDay(); document.getElementById(dayOfWeek).appendChild(dayPTag); } } renderCal(getNumberOfDays(yearChosen,monthChosen));
 #cal-container{ width:300px; height:500px; border:1px solid black; margin:400px; margin-left:500px; } #cal-header{ display:flex; justify-content:space-around; } p{ display:inline; }
 <head> <title>Calendar</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale-1.0"> </head> <body> <div id="cal-container"> <div id="cal-header"> <div> <i><</i> <p id="month"></p> <i>></i> </div> <div> <i><</i> <p id="year"></p> <i>></i> </div> </div> <div id="days-container"> <div id="0" class="days-column"></div> <div id="1" class="days-column"></div> <div id="2" class="days-column"></div> <div id="3" class="days-column"></div> <div id="4" class="days-column"></div> <div id="5" class="days-column"></div> <div id="6" class="days-column"></div> </div> </div> </body>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM