ลูกศรสำหรับเปลี่ยนเดือนในปฏิทินด้วย JavaScript

ตอนนี้ขอให้เราสร้างลูกศรสำหรับเปลี่ยนเดือนใต้ปฏิทิน กัน เราจะปรับเปลี่ยนโค้ด HTML:

html<div id="parent">
  <div id="calendar">
    <div class="info">ม.ค. 2020</div>
    <table>
      <thead>
        <tr>
          <th>จ.</th>
          <th>อ.</th>
          <th>พ.</th>
          <th>พฤ.</th>
          <th>ศ.</th>
          <th>ส.</th>
          <th>อา.</th>
        </tr>
      </thead>
      <tbody class="body"></tbody>
    </table>
    <div class="nav">
      <a href="#" class="prev">←</a>
      <a href="#" class="next">→</a>
    </div>
  </div>
</div>

เราจะปรับเปลี่ยนโค้ด CSS:

css#parent {
  text-align: center;
}
#calendar {
  display: inline-block;
}
#calendar td, #calendar th {
  padding: 10px;
  border: 1px solid black;
  text-align: center;
}

#calendar .nav, #calendar .info {
  text-align: center;
}
#calendar a {
  color: blue;
  font-size: 25px;
  text-decoration: none;
}
#calendar a:hover {
  color: red;
}

#calendar .active {
  color: red;
}

ให้เราได้ลิงก์ของลูกศรมาเก็บในตัวแปร:

javascriptlet prev = calendar.querySelector('.prev');
let next = calendar.querySelector('.next');

การอภิปราย

ตอนนี้ให้เราอภิปรายกันว่าจะแก้ไขปัญหานี้อย่างไร ที่จริงแล้วโค้ดปฏิทินของเราเขียนมาด้วย การขยายตัวที่ดี: เรามีฟังก์ชัน draw, ซึ่งวาดปฏิทินสำหรับเดือนที่กำหนด ดังนั้น เมื่อคลิกที่ลูกศร เราก็สามารถ วาดปฏิทินใหม่ด้วยเดือนอื่นได้ (และอาจจะเป็นปีอื่นด้วย)

นี่คือตัวอย่างสิ่งที่เราสามารถทำได้เมื่อ คลิกที่ลูกศรเดือนถัดไป:

javascriptnext.addEventListener('click', function() {
  draw(body, getNextYear(year, month), getNextMonth(month));
});

อย่างที่คุณเห็น นี่ใช้ฟังก์ชัน getNextYear และ getNextMonth ให้เราอภิปรายกันว่ามันควรทำอะไร

ตามชื่อของมัน ฟังก์ชัน getNextYear จะได้ปีถัดไป ที่นี่หมายถึง ว่าถ้าตอนนี้เป็นเดือนธันวาคม เมื่อเปลี่ยน ไปเดือนถัดไป ปีควรเพิ่มขึ้น เป็น 1 แต่ถ้าตอนนี้ไม่ใช่เดือนธันวาคม ฟังก์ชันก็ควรคืนค่าปีปัจจุบัน

ฟังก์ชัน getNextMonth ควรได้ เดือนถัดไป มันจะเพิ่มเลขเดือน ด้วยหนึ่งสำหรับทุกเดือน ยกเว้น เดือนธันวาคม ส่วนเดือนถัดไปของเดือนธันวาคม ก็คือเดือนมกราคมที่มีเลข 0

การดำเนินการที่คล้ายกันควรทำเมื่อ คลิกที่ปุ่มเดือนก่อนหน้า:

javascriptprev.addEventListener('click', function() {
  draw(body, getPrevYear(year, month), getPrevMonth(month));
});
Задание 1

โปรดทำให้ปุ่มเปลี่ยนเดือนทำงาน

Задание 2

ทำให้ข้อมูลเหนือปฏิทิน ตรงกับเดือนและปีที่แสดง