Lesson – 75 : Introduction to the Document Object Model (DOM)

เชตเซ‡เชฌ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸเชฎเชพเช‚ DOM เชเชŸเชฒเซ‡ Document Object Model, เชœเซ‡ เชตเซ‡เชฌ เชชเซ‡เชœเชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชฎเซ‹เชกเชฒ เช›เซ‡. HTML เชชเซ‡เชœ เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เช–เซเชฒเซเชฏเชพ เชชเช›เซ€ เชคเซ‡ เชเช• เช“เชฌเซเชœเซ‡เช•เซเชŸเชจเชพ เชตเซƒเช•เซเชท (Tree Structure) เชฎเชพเช‚ เชฌเชฆเชฒเชพเชฏ เช›เซ‡ เชœเซ‡เชจเซ‡ DOM เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.


๐Ÿ’ก DOM เชถเซเช‚ เช›เซ‡?

DOM เช HTML เช…เชฅเชตเชพ XML เชกเซ‹เช•เซเชฏเซเชฎเซ‡เชจเซเชŸเชจเซเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต (representation) เช›เซ‡.
เชเชฎเชพเช‚ เชฆเชฐเซ‡เช• HTML เชŸเซ…เช— เชเช• เช‘เชฌเซเชœเซ‡เช•เซเชŸ (node) เชฐเซ‚เชชเซ‡ เช—เชฃเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡:

  • Document

  • HTML

  • Head

  • Body

  • h1, p, div, img เชตเช—เซ‡เชฐเซ‡ เชŸเซ…เช—

  • Text nodes

  • Attributes

DOM เชคเชฎเชจเซ‡ เชตเซ‡เชฌ เชชเซ‡เชœ เชธเชพเชฅเซ‡ เช•เซ‹เชก เชฆเซเชตเชพเชฐเชพ เช‡เชจเซเชŸเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช†เชชเซ‡ เช›เซ‡.


๐Ÿ— DOM เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡?

เชœเซเชฏเชพเชฐเซ‡ เชตเซ‡เชฌ เชชเซ‡เชœ เชฒเซ‹เชก เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชฌเซเชฐเชพเช‰เชเชฐ HTML เชจเซ‡ เชตเชพเช‚เชšเซ€เชจเซ‡ เชเช• DOM Tree Structure เชฌเชจเชพเชตเซ‡ เช›เซ‡.
เช† เชตเซƒเช•เซเชทเชฎเชพเช‚:

  • เชธเชฐเซเชตเซ‹เชšเซเชš เชฒเซ‡เชตเชฒเชจเซ‹ เชจเซ‹เชก โ†’ document

  • เชคเซ‡เชฎเชพเช‚ โ†’ html

  • html เชฎเชพเช‚ โ†’ head เช…เชจเซ‡ body

  • body เชฎเชพเช‚ โ†’ เช…เชจเซเชฏ เชฌเชงเชพ elements

JavaScript เช† DOM เชตเซƒเช•เซเชทเชฎเชพเช‚ เชœเชˆเชจเซ‡ elements เชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฌเชฆเชฒเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡.


๐Ÿงฉ DOMเชจเชพเช‚ เชฎเซเช–เซเชฏ เชญเชพเช—เซ‹

1๏ธโƒฃ Document Object

เช† เช†เช–เชพ เชตเซ‡เชฌ เชชเซ‡เชœเชจเซเช‚ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เช•เชฐเซ‡ เช›เซ‡.
เช‰เชฆเชพเชนเชฐเชฃ:

document.title;
document.body;
2๏ธโƒฃ Elements

HTML เชŸเซ…เช—เซเชธ เชœเซ‡เชตเชพ เช•เซ‡ <p>, <h1>, <div>
เช‰เชฆเชพเชนเชฐเชฃ:

document.getElementById("demo");
3๏ธโƒฃ Attributes

HTML เชŸเซ‡เช—เชจเชพ เช—เซเชฃเชงเชฐเซเชฎเซ‹: id, class, src, href
เช‰เชฆเชพเชนเชฐเชฃ:

element.id = "box";
4๏ธโƒฃ Text Nodes

เชŸเซ…เช—เชจเซ€ เช…เช‚เชฆเชฐ เชฒเช–เซ‡เชฒเซเช‚ เชŸเซ‡เช•เซเชธเซเชŸ เชœ text node เช›เซ‡.


๐ŸŽฏ DOMเชจเซ‹ เชฎเซเช–เซเชฏ เช‰เชชเชฏเซ‹เช—

โœ” เชตเซ‡เชฌ เชชเซ‡เชœเชจเซ‡ เชฌเชฆเชฒเชตเซ‹
document.getElementById("title").innerHTML = "Welcome";
โœ” CSS เชฌเชฆเชฒเชตเซเช‚
element.style.color = "red";
โœ” เชจเชตเซ‹ HTML เช‰เชฎเซ‡เชฐเชตเซ‹
let p = document.createElement("p");
p.innerText = "New Paragraph";
document.body.appendChild(p);
โœ” เช‡เชตเซ‡เชจเซเชŸ เชนเซ‡เชจเซเชกเชฒเชฟเช‚เช—
button.onclick = function() {
alert("Button Clicked!");
};

๐ŸŒณ DOM Tree Structure เชจเซ‹ เชธเชฐเชณ เช†เช•เชพเชฐ (Diagram)

Document
โ”‚
โ””โ”€โ”€ html
โ”‚
โ”œโ”€โ”€ head
โ”‚ โ””โ”€โ”€ title
โ”‚
โ””โ”€โ”€ body
โ”œโ”€โ”€ h1
โ”œโ”€โ”€ p
โ””โ”€โ”€ div
โ””โ”€โ”€ a

เช† เชฐเซ€เชคเซ‡ เชฌเซเชฐเชพเช‰เชเชฐ เชฆเชฐเซ‡เช• เชŸเซ…เช—เชจเซ€ เชตเชšเซเชšเซ‡ parent-child เชธเชฌเช‚เชง เชฌเชจเชพเชตเซ‡ เช›เซ‡.


๐Ÿ” DOM เชธเชพเชฅเซ‡ JavaScript เชจเซเช‚ เชธเช‚เชฌเช‚เชง

JavaScript เชจเซ‹ เชฎเซเช–เซเชฏ เชนเชฟเชธเซเชธเซ‹ DOM เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡.
JavaScript DOM เชฆเซเชตเชพเชฐเชพ เชตเซ‡เชฌ เชชเซ‡เชœเชจเซ‡:

  • เชตเชพเช‚เชšเซ€ เชถเช•เซ‡ เช›เซ‡

  • เชถเซ‹เชงเซ€ เชถเช•เซ‡ เช›เซ‡

  • เชฌเชฆเชฒเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡

  • เช˜เชŸเช•เซ‹ เช‰เชฎเซ‡เชฐเชตเชพ/เชฆเซ‚เชฐ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡

  • เช‡เชตเซ‡เชจเซเชŸเซเชธ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡

DOM เชตเช—เชฐ JavaScript เชตเซ‡เชฌ เชชเซ‡เชœเชจเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€.