JavaScript HTML DOM 导航
- Previous Page DOM Event Listeners
- Next Page DOM Nodes
Sa pamamagitan ng HTML DOM, maaari mong gamitin ang relasyon ng node upang magmaneho sa puno ng node.
DOM Nodes
Ayon sa W3C HTML DOM standard, ang lahat ng bagay sa HTML dokumento ay mga node:
- Ang buong dokumento ay isang node ng dokumento.
- Ang bawat HTML element ay isang node ng element.
- Ang teksto sa loob ng HTML element ay isang node ng teksto.
- Ang bawat HTML attribute ay isang node ng attribute.
- Ang lahat ng komento ay mga node ng komento.

Sa pamamagitan ng HTML DOM, ang lahat ng node sa puno ng node ay maaring ma-access sa pamamagitan ng JavaScript.
Maaari mong lumikha ng bagong node, at magbabago o alisin ang lahat ng mga node.
Relasyon ng node
Ang mga node sa puno ng node ay may ilang antas ng relasyon sa isa't isa.
- Ang mga termino (magulang, anak, at magkakapatid, parent, child, at sibling) ay ginagamit upang ilarawan ang mga relasyon na ito.
- Sa puno ng node, ang pinakamataas na node ay tinatawag na root (walang magulang ang pinakamataas na node).
- Ang bawat node ay may magulang, maliban sa ang pinakamataas (walang magulang ang pinakamataas na node).
- Ang bawat node ay may ilang mga anak.
- Ang magkakapatid (kapatid na lalaki o babae) ay mga node na may parehong magulang.
<html> <head> <title> Tutorial ng DOM </title> </head> <body> <h1>Pangunahing klase ng DOM</h1> <p>Hello world!</p> </body> </html>

Maaari mong mabasa sa ibang impormasyon mula sa HTML na ito:
- Ang <html> ay ang pangunahing node
- Wala ang magulang ang <html>
- Ang <html> ay magulang ng <head> at <body>
- Isang <head> ang unang anak ng <html>
- <body> ay huling anak ng <html>
Pati na rin:
- <head> ay may isang anak: <title>
- <title> ay may isang anak (node ng teksto): "DOM Tutorial"
- <body> ay may dalawang anak: <h1> at <p>
- <h1> ay may isang anak: "DOM Unang Paksisyon"
- <p> ay may isang anak: "Hello world!"
- <h1> at <p> ay kapwa
Mag-navigate sa pagitan ng mga node
Sa pamamagitan ng JavaScript, maaari mong gamitin ang mga sumusunod na property ng node upang mag-navigate sa pagitan ng mga node:
- parentNode
- childNodes[nodenumber]
- firstChild
- lastChild
- nextSibling
- previousSibling
Anak na node at halaga ng node
Ang isang karaniwang pagkakamali sa paggamit ng DOM ay ang paniniwala na ang elemento ay naglalaman ng teksto.
Mga halimbawa:
<title id="demo">DOM Tutorial</title>
(sa halimbawa sa itaas)na elemento na may <title> Hindi naglalaman ngTeksto.
Ito ay naglalaman ng teksto na may halaga na "DOM Tutorial"Node ng teksto.
Ang halaga ng teksto ng isang node ng teksto ay maaaring ma-access sa pamamagitan ng halaga ng node: innerHTML
Gumamit ng mga sumusunod na property ng node upang makapasok sa mga ito:
var myTitle = document.getElementById("demo").innerHTML;
Ang pag-access ng property na innerHTML ay katumbas ng pag-access ng unang anak na node: nodeValue
:
var myTitle = document.getElementById("demo").firstChild.nodeValue;
Maaari rin itong gawin sa paraan na ito para makapagsalika sa unang anak na node:
var myTitle = document.getElementById("demo").childNodes[0].nodeValue;
Ang mga sumusunod na tatlong halimbawa ay kumukuha ng <h1>
Kopyahin ang teksto ng elemento at ilagay sa <p>
Sa elemento:
Mga halimbawa 1
<html> <body> <h1 id="id01">Aking unang pahina</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML; </script> </body> </html>
Mga halimbawa 2
<html> <body> <h1 id="id01">Aking unang pahina</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue; </script> </body> </html>
Mga halimbawa 3
<html> <body> <h1 id="id01">Aking unang pahina</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue; </script> </body> </html>
InnerHTML
Sa katutubong ito, gumagamit kami ng innerHTML
Kumuha ng nilalaman ng HTML element.
Subalit, ang pag-aaral ng ibang mga paraan ay nakakatulong sa pag-unawa ng straktura ng puno ng DOM at ang paglalakbay nito.
Root na node ng DOM
Mayroong dalawang espesyal na property na nagbibigay-daan sa buong dokumento:
- document.body - Ang body ng dokumento
- document.documentElement - Kompleto na dokumento
Egemplo
<html> <body> <p>Hello World!</p> <div> <p>Ang DOM ay napakakapaki!</p> <p>Ang egemplo na ito ay nagpapakita ng property na <b>document.body</b>。</p> </div> <script> alert(document.body.innerHTML); </script> </body> </html>
Egemplo
<html> <body> <p>Hello World!</p> <div> <p>Ang DOM ay napakakapaki!</p> <p>Ang egemplo na ito ay nagpapakita ng property na <b>document.documentElement</b>。</p> </div> <script> alert(document.documentElement.innerHTML); </script> </body> </html>
property na nodeName
nodeName
ang property na ito ay nagtutukoy sa pangalan ng node.
- ang nodeName ay basahin lamang.
- ang nodeName ng element na node ay katumbas ng pangalan ng tag.
- ang nodeName ng property na node ay ang pangalan ng property.
- ang nodeName ng text na node ay palaging #text.
- ang nodeName ng dokumentong node ay palaging #document.
Egemplo
<h1 id="id01">Aking unang pahina</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName; </script>
Komento:ang nodeName ay palaging naglalaman ng malalim na pangalan ng HTML element sa maiikling titik.
property na nodeValue
nodeValue
ang property na ito ay nagtutukoy sa halaga ng node.
- ang nodeValue ng element na node ay undefined.
- ang nodeValue ng text na node ay ang teksto ng teksto.
- ang nodeValue ng property na node ay ang halaga ng property.
property na nodeType
nodeType
ang property ay ibibigay ang uri ng node.nodeType
ay basahin lamang.
Egemplo
<h1 id="id01">Aking unang pahina</h1> <p id="id02">Hello!</p> <script> document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType; </script>
The most important nodeType property is:
Node | Type | Example |
---|---|---|
ELEMENT_NODE | 1 | <h1 class="heading">W3School</h1> |
ATTRIBUTE_NODE | 2 | class = "heading" (deprecated) |
TEXT_NODE | 3 | W3School |
COMMENT_NODE | 8 | <!-- This is a comment --> |
DOCUMENT_NODE | 9 | The HTML document itself (parent of <html>) |
DOCUMENT_TYPE_NODE | 10 | <!DOCTYPE html> |
Type 2 is deprecated in HTML DOM. Not deprecated in XML DOM.
- Previous Page DOM Event Listeners
- Next Page DOM Nodes