前提・実現したいこと
下記URLに記載のコードを利用してカレンダーを作成しています。
リンク内容
こちらの中の下記コードの意味が理解できないので、どなたか教えていただけませんでしょうか。
↓意味が理解できないコード(javascript の最後の行です)
$('table').find('tbody').find('tr').last().find('td').eq(week).html(i);
【ご質問】last()は最終日だと思うのですが、なぜ最終日がこの位置で取得が必要なのでしょうか。
該当のソースコード
html
1<body> 2 <h1>Calender by Javascript</h1> 3 <div class="date-head"></div> 4 5 <table class="table table-border table-hover table-sm"> 6 <thead class="table-dark"> 7 <tr> 8 <th>Sun</th> 9 <th>Mon</th> 10 <th>Tue</th> 11 <th>Wed</th> 12 <th>Thu</th> 13 <th>Fri</th> 14 <th>Sat</th> 15 </tr> 16 </thead> 17 18 <tbody> 19 20 </tbody> 21 22 </table> 23 <script 24 src="https://code.jquery.com/jquery-3.5.1.js" 25 integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" 26 crossorigin="anonymous"></script> 27 <script type="text/javascript" src="calender.js"></script> 28</body>
javascript
1var today = new Date(); 2var year = today.getFullYear(); 3var month = today.getMonth() + 1; 4 5$('.date-head').html(year + "-" + month); 6 7var last = new Date(today.getFullYear(), today.getMonth() + 1, 0); 8 9var last_year = last.getFullYear(); 10var last_month = last.getMonth();ax 11var last_day = last.getDate(); 12 13for(var i=1; i<=last_day; i++){ 14 var week = new Date(last_year, last_month, i).getDay(); 15 if(!week || i == 1){ 16 $('table').find('tbody').append( 17 '<tr>' + 18 '<td></td>' + 19 '<td></td>' + 20 '<td></td>' + 21 '<td></td>' + 22 '<td></td>' + 23 '<td></td>' + 24 '<td></td>' + 25 '</tr>' 26 ); 27 } 28 $('table').find('tbody').find('tr').last().find('td').eq(week).html(i); 29} 30
試したこと
.last()を記述しないと、カレンダーの最終行しか表示されない。
.last()を他の位置で記載してもおかしなカレンダー表示になる。
回答2件
あなたの回答
tips
プレビュー