ข้ามไปยังเนื้อหาหลัก
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

การใช้ HTML ร่วมกับ JavaScript เบื้องต้น

บทนี้เป็นการปูพื้นฐานการใช้ JavaScript ร่วมกับ HTML เพื่อเพิ่มความสามารถในการตอบสนองต่อผู้ใช้งาน (Interactivity) โดยอธิบายถึงวิธีการเพิ่ม JavaScript ใน HTML ทั้...

การใช้ HTML ร่วมกับ JavaScript เบื้องต้น

ในบทเรียนก่อนหน้านี้ เราได้เรียนรู้วิธีการใช้ CSS เพื่อตกแต่งหน้าเว็บของเราให้สวยงามและน่าดึงดูดยิ่งขึ้น แต่หากเราต้องการเพิ่มลูกเล่นและความสามารถในการตอบสนองต่อผู้ใช้งาน (Interactivity) ให้กับเว็บไซต์ของเรา เราจำเป็นต้องพึ่งพาภาษา JavaScript

JavaScript เป็นภาษาโปรแกรมที่ทำงานบนฝั่งไคลเอ็นต์ (Client-side scripting) ซึ่งหมายความว่าโค้ด JavaScript จะถูกประมวลผลโดยเว็บเบราว์เซอร์ของผู้ใช้งาน ทำให้เราสามารถสร้างองค์ประกอบที่เปลี่ยนแปลงได้แบบไดนามิก (Dynamic elements) เช่น การแสดงผลข้อมูลที่เปลี่ยนแปลงตามการกระทำของผู้ใช้, การตรวจสอบความถูกต้องของฟอร์ม, หรือการสร้างแอนิเมชั่น

การเพิ่ม JavaScript ใน HTML

มี 3 วิธีหลักๆ ในการเพิ่มโค้ด JavaScript ลงในไฟล์ HTML ของเรา:

  • Inline JavaScript: การเขียนโค้ด JavaScript ลงใน attribute ของ HTML tag โดยตรง (ไม่แนะนำให้ใช้ในระยะยาว)
  • Internal JavaScript: การเขียนโค้ด JavaScript ภายใน tag <script> ในส่วน <head> หรือ <body> ของไฟล์ HTML
  • External JavaScript: การเขียนโค้ด JavaScript ในไฟล์ .js แยกต่างหาก และทำการลิงก์ไฟล์นั้นเข้ามาในไฟล์ HTML

Inline JavaScript

วิธีนี้เป็นการเขียนโค้ด JavaScript ลงใน attribute ของ HTML tag โดยตรง มักใช้สำหรับเหตุการณ์ง่ายๆ ที่ต้องการตอบสนองต่อผู้ใช้งานทันที

<button onclick="alert('สวัสดีชาวโลก!');">คลิกฉัน</button>
  

เมื่อผู้ใช้คลิกปุ่ม "คลิกฉัน" ข้อความ "สวัสดีชาวโลก!" จะปรากฏขึ้นในรูปแบบของ alert box

ข้อเสีย: Inline JavaScript ทำให้โค้ด HTML ของเราดูรกและยากต่อการบำรุงรักษา นอกจากนี้ยังเป็นการยากที่จะนำโค้ด JavaScript ไปใช้ซ้ำในหลายๆ ที่ ดังนั้นจึงไม่แนะนำให้ใช้วิธีนี้ในระยะยาว

Internal JavaScript

วิธีนี้เป็นการเขียนโค้ด JavaScript ภายใน tag <script> ในส่วน <head> หรือ <body> ของไฟล์ HTML

<!DOCTYPE html>
<html>
<head>
  <title>Internal JavaScript</title>
  <script>
    function showMessage() {
      alert('สวัสดีชาวโลก!');
    }
  </script>
</head>
<body>
  <button onclick="showMessage()">คลิกฉัน</button>
</body>
</html>
  

ในตัวอย่างนี้ เราได้กำหนดฟังก์ชัน showMessage() ภายใน tag <script> ซึ่งจะแสดง alert box เมื่อถูกเรียกใช้ จากนั้นเราได้เรียกใช้ฟังก์ชันนี้เมื่อผู้ใช้คลิกปุ่ม "คลิกฉัน"

ข้อดี: Internal JavaScript ช่วยให้เราสามารถแยกโค้ด JavaScript ออกจากเนื้อหา HTML ได้บ้าง ทำให้โค้ดดูเป็นระเบียบมากขึ้น

ข้อเสีย: Internal JavaScript ยังคงทำให้ไฟล์ HTML ของเรามีขนาดใหญ่ขึ้น และยากต่อการนำโค้ด JavaScript ไปใช้ซ้ำในหลายๆ หน้า ดังนั้นจึงยังไม่ใช่วิธีที่ดีที่สุด

External JavaScript

วิธีนี้เป็นการเขียนโค้ด JavaScript ในไฟล์ .js แยกต่างหาก และทำการลิงก์ไฟล์นั้นเข้ามาในไฟล์ HTML โดยใช้ tag <script> พร้อมทั้งระบุ attribute src เพื่อชี้ไปยังไฟล์ .js นั้น

ตัวอย่างไฟล์ script.js:

function showMessage() {
  alert('สวัสดีชาวโลก!');
}
  

ตัวอย่างไฟล์ index.html:

<!DOCTYPE html>
<html>
<head>
  <title>External JavaScript</title>
</head>
<body>
  <button onclick="showMessage()">คลิกฉัน</button>
  <script src="script.js"></script>
</body>
</html>
  

ในตัวอย่างนี้ เราได้สร้างไฟล์ script.js ที่มีฟังก์ชัน showMessage() และทำการลิงก์ไฟล์นี้เข้ามาในไฟล์ index.html โดยใช้ tag <script> พร้อมทั้งระบุ attribute src="script.js"

ข้อดี: External JavaScript เป็นวิธีที่ดีที่สุดในการจัดการโค้ด JavaScript เนื่องจากช่วยให้เราสามารถแยกโค้ด JavaScript ออกจากเนื้อหา HTML ได้อย่างสมบูรณ์ ทำให้โค้ดดูเป็นระเบียบมากขึ้น, ง่ายต่อการบำรุงรักษา, และสามารถนำโค้ด JavaScript ไปใช้ซ้ำในหลายๆ หน้าได้

คำแนะนำ: ควรวาง tag <script> ที่ลิงก์ไปยังไฟล์ .js ไว้ที่ส่วนท้ายของ <body> tag เพื่อให้แน่ใจว่า HTML content ทั้งหมดถูกโหลดก่อนที่ JavaScript จะเริ่มทำงาน ซึ่งจะช่วยปรับปรุงประสิทธิภาพของเว็บไซต์

การใช้ Event Listeners

Event listeners เป็นกลไกที่ช่วยให้เราสามารถตรวจจับเหตุการณ์ต่างๆ ที่เกิดขึ้นบนหน้าเว็บ เช่น การคลิก, การเลื่อนเมาส์, การกดแป้นพิมพ์, และอื่นๆ จากนั้นเราสามารถกำหนดให้โค้ด JavaScript ทำงานเมื่อเกิดเหตุการณ์เหล่านั้น

มีหลายวิธีในการเพิ่ม event listeners ใน JavaScript:

  • Inline event handlers (ไม่แนะนำ): การใช้ attribute onclick, onmouseover, onkeydown, และอื่นๆ ใน HTML tag โดยตรง (เหมือนกับ Inline JavaScript)
  • Using the addEventListener() method: วิธีที่แนะนำในการเพิ่ม event listeners ใน JavaScript

Using the addEventListener() method

วิธีนี้เป็นวิธีที่แนะนำในการเพิ่ม event listeners ใน JavaScript เนื่องจากมีความยืดหยุ่นและง่ายต่อการจัดการมากกว่า

<!DOCTYPE html>
<html>
<head>
  <title>Event Listeners</title>
</head>
<body>
  <button id="myButton">คลิกฉัน</button>
  <script>
    const button = document.getElementById('myButton');

    button.addEventListener('click', function() {
      alert('ปุ่มถูกคลิก!');
    });
  </script>
</body>
</html>
  

ในตัวอย่างนี้ เราได้ใช้ document.getElementById('myButton') เพื่อเลือก HTML element ที่มี id เป็น "myButton" (ซึ่งก็คือปุ่ม "คลิกฉัน") จากนั้นเราได้ใช้ addEventListener('click', function() { ... }) เพื่อเพิ่ม event listener ที่จะทำงานเมื่อปุ่มถูกคลิก

addEventListener() รับพารามิเตอร์ 2 ตัว:

  • event: ชื่อของเหตุการณ์ที่เราต้องการตรวจจับ (เช่น 'click', 'mouseover', 'keydown')
  • listener: ฟังก์ชันที่จะถูกเรียกใช้เมื่อเกิดเหตุการณ์นั้น

การเปลี่ยนแปลงเนื้อหา HTML ด้วย JavaScript

JavaScript ช่วยให้เราสามารถเปลี่ยนแปลงเนื้อหา HTML ได้แบบไดนามิก ซึ่งหมายความว่าเราสามารถเพิ่ม, แก้ไข, หรือลบ HTML elements และ attribute ได้โดยไม่ต้องโหลดหน้าเว็บใหม่

มีหลายวิธีในการเปลี่ยนแปลงเนื้อหา HTML ด้วย JavaScript:

  • innerHTML: ใช้สำหรับแก้ไข HTML content ภายใน element
  • textContent: ใช้สำหรับแก้ไข text content ภายใน element
  • setAttribute(): ใช้สำหรับแก้ไข attribute ของ element
  • createElement(), appendChild(), removeChild(): ใช้สำหรับสร้าง, เพิ่ม, และลบ HTML elements

innerHTML

innerHTML property ใช้สำหรับแก้ไข HTML content ภายใน element

<!DOCTYPE html>
<html>
<head>
  <title>innerHTML</title>
</head>
<body>
  <div id="myDiv">
    <p>ข้อความเริ่มต้น</p>
  </div>
  <button id="changeButton">เปลี่ยนข้อความ</button>
  <script>
    const div = document.getElementById('myDiv');
    const button = document.getElementById('changeButton');

    button.addEventListener('click', function() {
      div.innerHTML = '<h1>ข้อความใหม่!</h1>';
    });
  </script>
</body>
</html>
  

ในตัวอย่างนี้ เมื่อผู้ใช้คลิกปุ่ม "เปลี่ยนข้อความ" HTML content ภายใน <div> จะถูกแทนที่ด้วย <h1>ข้อความใหม่!</h1>

textContent

textContent property ใช้สำหรับแก้ไข text content ภายใน element

<!DOCTYPE html>
<html>
<head>
  <title>textContent</title>
</head>
<body>
  <p id="myParagraph">ข้อความเริ่มต้น</p>
  <button id="changeButton">เปลี่ยนข้อความ</button>
  <script>
    const paragraph = document.getElementById('myParagraph');
    const button = document.getElementById('changeButton');

    button.addEventListener('click', function() {
      paragraph.textContent = 'ข้อความใหม่!';
    });
  </script>
</body>
</html>
  

ในตัวอย่างนี้ เมื่อผู้ใช้คลิกปุ่ม "เปลี่ยนข้อความ" text content ภายใน <p> จะถูกแทนที่ด้วย "ข้อความใหม่!"

setAttribute()

setAttribute() method ใช้สำหรับแก้ไข attribute ของ element

<!DOCTYPE html>
<html>
<head>
  <title>setAttribute()</title>
</head>
<body>
  <img id="myImage" src="image1.jpg" alt="รูปภาพ 1">
  <button id="changeButton">เปลี่ยนรูปภาพ</button>
  <script>
    const image = document.getElementById('myImage');
    const button = document.getElementById('changeButton');

    button.addEventListener('click', function() {
      image.setAttribute('src', 'image2.jpg');
      image.setAttribute('alt', 'รูปภาพ 2');
    });
  </script>
</body>
</html>
  

ในตัวอย่างนี้ เมื่อผู้ใช้คลิกปุ่ม "เปลี่ยนรูปภาพ" attribute src และ alt ของ <img> จะถูกแก้ไข

createElement(), appendChild(), removeChild()

createElement(), appendChild(), และ removeChild() methods ใช้สำหรับสร้าง, เพิ่ม, และลบ HTML elements

<!DOCTYPE html>
<html>
<head>
  <title>createElement(), appendChild(), removeChild()</title>
</head>
<body>
  <ul id="myList"></ul>
  <button id="addButton">เพิ่มรายการ</button>
  <button id="removeButton">ลบรายการ</button>
  <script>
    const list = document.getElementById('myList');
    const addButton = document.getElementById('addButton');
    const removeButton = document.getElementById('removeButton');

    addButton.addEventListener('click', function() {
      const newListItem = document.createElement('li');
      newListItem.textContent = 'รายการใหม่';
      list.appendChild(newListItem);
    });

    removeButton.addEventListener('click', function() {
      if (list.hasChildNodes()) {
        list.removeChild(list.firstChild);
      }
    });
  </script>
</body>
</html>
  

ในตัวอย่างนี้ เมื่อผู้ใช้คลิกปุ่ม "เพิ่มรายการ" <li> element ใหม่จะถูกสร้างและเพิ่มเข้าไปใน <ul> เมื่อผู้ใช้คลิกปุ่ม "ลบรายการ" <li> element แรกใน <ul> จะถูกลบออก

ในบทนี้ เราได้เรียนรู้พื้นฐานเกี่ยวกับการใช้ JavaScript ร่วมกับ HTML เพื่อเพิ่มลูกเล่นและความสามารถในการตอบสนองต่อผู้ใช้งานให้กับเว็บไซต์ของเรา ในบทเรียนต่อไป เราจะเจาะลึกในเรื่องของ JavaScript มากยิ่งขึ้น และเรียนรู้วิธีการสร้างเว็บแอปพลิเคชันที่ซับซ้อนมากยิ่งขึ้น

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์