JavaScript HTML DOM 导航

ຈາກ HTML DOM ທ່ານສາມາດໃຊ້ສາຍລັງຕົວເລກເພື່ອອານນະຈາກຕົວເລກທີ່ມີຈຳນວນຫຼາຍຂອງຕົວເລກຫຼັງຄາດກໍ່ຕາມ

ຫຼັກ DOM

ອີງຕາມມາດຕະຖານ W3C HTML DOM ທຸກຢູ່ທີ່ໃນ HTML document ແມ່ນຕົວເລກ:

  • ທຸກໜຶ່ງໃນໂຕກາດແມ່ນຕົວເລກdocument
  • ແຕ່ລະ HTML element ແມ່ນຕົວເລກelement
  • ຄວາມຂຽນໃນ HTML element ແມ່ນຕົວເລກtext
  • ແຕ່ລະບັນດາ HTML attribute ແມ່ນຕົວເລກattribute
  • ທຸກຄວາມຄິດຄັດແມ່ນຕົວເລກຄິດຄັດ
ຮູບແບບ DOM HTML

ດັ່ງນັ້ນ HTML DOM ຕົວເລກທັງໝົດໃນຕົວເລກທີ່ມີຈຳນວນຫຼາຍຂອງຕົວເລກຫຼັງຄາດກໍ່ຕາມສາມາດເຂົ້າເຖິງຈາກ JavaScript

ສາມາດສ້າງຕົວເລກໃໝ່ ແລະສາມາດດັດແກ້ ແລະລຶບຕົວເລກທັງໝົດ

ສາຍລັງຕົວເລກ

ຕົວເລກໃນຕົວເລກທີ່ມີຈຳນວນຫຼາຍຂອງຕົວເລກຫຼັງຄາດກໍ່ຕາມມີສາຍລັງທີ່ມີຄວາມລະດັບ

  • ອັດຕາ (ພໍ່, ລູກ ແລະ ພີ່ນລູກ, parent, child ແລະ sibling) ແມ່ນໃຊ້ເພື່ອອະທິບາຍສາຍລັງດັ່ງກ່າວ
  • ໃນຕົວເລກທີ່ມີຈຳນວນຫຼາຍຂອງຕົວເລກຫຼັງຄາດກໍ່ຕາມ ຕົວເລກສະຖານະທີ່ຢູ່ທີ່ສຸດແມ່ນອອກຮູບຮ່າງຫຼັງ
  • ແຕ່ລະຕົວເລກມີພໍ່ຕົວເລກຫຼັງຄາດກໍ່ຕາມ (ຜູ້ຫຼັງຂອງຕົວເລກຫຼັງຄາດກໍ່ຕາມບໍ່ມີພໍ່ຕົວເລກ)
  • ຕົວເລກສາມາດມີຈຳນວນລູກລັງຫຼາຍຫຼືໜ້ອຍ
  • ຄົນຮ່ວມ (ພີ່ນລູກຫຼືພີ່ນຍິງ) ແມ່ນຕົວເລກທີ່ມີພໍ່ດຽວກັນ
<html>
   <head>
       <title>ການສອນ DOM</title>
   </head>
  <body>
       <h1>ຊຸດສະຖານະຂອງ DOM</h1>
       <p>Hello world!</p>
   </body>
</html> 
ຮູບແບບ DOM HTML

ຈາກ HTML ທີ່ຂ້ອຍອ່ານເທິງມັນທ່ານຈະອ່ານໄດ້ຂໍ້ມູນດັ່ງກ່າວຫຼັງນັ້ນ:

  • html ແມ່ນຜູ້ຫຼັງ
  • html ບໍ່ມີພໍ່
  • html ແມ່ນພໍ່ຂອງ head ແລະ body
  • head ແມ່ນລູກລັງຂອງ html
  • <body> ແມ່ນຜູ້ລູກສຸດທ້າຍຂອງ <html>

ພ້ອມກັນ:

  • <head> ມີຜູ້ລູກຄົນດຽວ: <title>
  • <title> ມີຜູ້ລູກຄົນດຽວ (ຜູ້ລູກຄູ່ມູນ): "DOM 教程"
  • <body> ມີຜູ້ລູກສອງຄົນ: <h1> ແລະ <p>
  • <h1> ມີຜູ້ລູກຄົນດຽວ: "DOM 第一课"
  • <p> ມີຜູ້ລູກຄົນດຽວ: "Hello world!"
  • <h1> ແລະ <p> ແມ່ນຜູ້ລູກສອງຄົນ:

ຈັດການກັບຜູ້ລູກລະຫວ່າງຫຼັກຕົວ:

ຜ່ານ JavaScript,ທ່ານສາມາດໃຊ້ສະຖານທີ່ຫຼັງຈາກຫຼັກຕົວເພື່ອຈັດການກັບຜູ້ລູກ:

  • parentNode
  • childNodes[nodenumber]
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

ຜູ້ລູກຫຼັງຄາວາມ ແລະ ຄູ່ມູນຂອງຜູ້ລູກ:

ຄວາມຜິດທີ່ປະກອບສັນ DOM ແມ່ນຄິດວ່າປະກອບສັນບັນທຶກຄູ່ມູນ.

ຄວາມນັບບັນຫາ:

<title id="demo">ການສອນ DOM</title>

ປະກອບສັນ <title> (ຕາມຄວາມນັບບັນຫາກ່ວາ): ບໍ່ມີ:ຄູ່ມູນ.

ມີຄູ່ມູນວ່າ "ການສອນ DOM":ຜູ້ລູກຂອງຄູ່ມູນ:.

ຄູ່ມູນຂອງຜູ້ລູກຂອງຫຼັກຕົວຢູ່: innerHTML ສະຖານທີ່ເຂົ້າເຖິງ:

var myTitle = document.getElementById("demo").innerHTML;

ການເຂົ້າເຖິງ innerHTML ສະຖານທີ່ທຽບກັບການເຂົ້າເຖິງຜູ້ລູກທຳອິດ: nodeValue:

var myTitle = document.getElementById("demo").firstChild.nodeValue;

ກໍ່ສາມາດເຂົ້າເຖິງຜູ້ລູກທຳອິດ:

var myTitle = document.getElementById("demo").childNodes[0].nodeValue;

ບົດຮູບທີ່ຖືກເລືອກຄັ້ງທີ່: <h1> ປະກອບສັນຂອງປະກອບສັນ: <p> ໃນປະກອບສັນ:

ຄວາມນັບບັນຫາ 1

<html>
<body>
<h1 id="id01">ບົດຮູບຕະຫຼອດຄັ້ງທຳອິດ</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML  = document.getElementById("id01").innerHTML;
</script>
</body>
</html>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

ຄວາມນັບບັນຫາ 2

<html>
<body>
<h1 id="id01">ບົດຮູບຕະຫຼອດຄັ້ງທຳອິດ</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue;
</script>
</body>
</html>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

ຄວາມນັບບັນຫາ 3

<html>
<body>
<h1 id="id01">ບົດຮູບຕະຫຼອດຄັ້ງທຳອິດ</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue;
</script>
</body>
</html>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

InnerHTML

ໃນການຮຽນນີ້ພວກເຮົານຳໃຊ້ innerHTML ຊອກບັນດາຂະນະກຳລັງຂຽນຂອງບັນດາຫົວຂໍ້ HTML.

ແຕ່ວ່າການຮຽນຮູ້ກັບວິທີອື່ນໆຈະຊ່ວຍໃຫ້ເຂົາເຈົ້າເຂົ້າໃຈກ່ຽວກັບຂອບແຂງຂອງ DOM ແລະການອອກໄປຫາຫົວຂໍ້.

ຫົວຂໍ້ທີ່ຫົວເຫນືອຂອງ DOM

ມີບັນດາບັນດາຫົວຂໍ້ພິເສດທີ່ອະນຸຍາດສະແດງບັນດາຫົວຂໍ້ທົ່ວໄປ:

  • document.body - ບັນດາຫົວຂໍ້ຂອງບັນດາຫົວຂໍ້ຂອງເອກະສານ
  • document.documentElement - ບັນດາຫົວຂໍ້ທົ່ວໄປຂອງເອກະສານ

ຄວາມນິຍົມ

<html>
<body>
<p>Hello World!</p>
<div>
<p>DOM ແມ່ນມີປະສິດທິພາບ!</p>
<p>ຄວາມນິຍົມນີ້ສະແດງວ່າ <b>document.body</b> ປະສົມປະກອບ.</p>
</div>
<script>
 alert(document.body.innerHTML);
</script>
</body>
</html>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

ຄວາມນິຍົມ

<html>
<body>
<p>Hello World!</p>
<div>
<p>DOM ແມ່ນມີປະສິດທິພາບ!</p>
<p>ຄວາມນິຍົມນີ້ສະແດງວ່າ <b>document.documentElement</b> ປະສົມປະກອບ.</p>
</div>
<script>
alert(document.documentElement.innerHTML);
</script>
</body>
</html>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

nodeName ປະສົມປະກອບ

nodeName ບັນດາຫົວຂໍ້ມີຄວາມນິຍົມຂອງບັນດາຫົວຂໍ້.

  • nodeName ເປັນທີ່ສາມາດອ່ານໄດ້ພຽງພໍ.
  • nodeName ມີຄວາມນິຍົມຂອງຊື່ບັນດາຫົວຂໍ້.
  • nodeName ຂອງບັນດາຫົວຂໍ້ມີຄວາມນິຍົມຂອງຊື່ບັນດາບັນດາອັນດັບ.
  • nodeName ຂອງບັນດາຫົວຂໍ້ມີຄວາມນິຍົມ #text
  • nodeName ຂອງບັນດາຫົວຂໍ້ແມ່ນ #document

ຄວາມນິຍົມ

<h1 id="id01">ບັນຊີເວບຂອງຂ້ອຍຄັ້ງທຳອິດ</h1>
<p id="id02">Hello!</p>
<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName;
</script>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

ຄໍາເຫັນ:nodeName ມີຄວາມນິຍົມຂອງບັນດາຫົວຂໍ້ຂອງ HTML ອັດສະນະທີ່ບາງການຄິດ.

nodeValue ປະສົມປະກອບ

nodeValue ບັນດາຫົວຂໍ້ມີຄວາມນິຍົມຂອງບັນດາຫົວຂໍ້.

  • ບັນດາຫົວຂໍ້ບັນດາອັນດັບມີຄວາມນິຍົມ undefined.
  • ບັນດາຫົວຂໍ້ຂອງບັນດາອັນດັບມີຄວາມນິຍົມຂອງຂະນະກຳລັງຂຽນ.
  • ບັນດາຫົວຂໍ້ບັນດາອັນດັບມີຄວາມນິຍົມຂອງບັນດາບັນດາອັນດັບທີ່ມີຄວາມນິຍົມ.

ປະສົມປະກອບ nodeType

nodeType ປະສົມປະກອບຂອງບັນດາອັນດັບຈະມີຄວາມຮູບຮ່າງຂອງບັນດາຫົວຂໍ້。nodeType ເປັນທີ່ສາມາດອ່ານໄດ້ພຽງພໍ。

ຄວາມນິຍົມ

<h1 id="id01">ບັນຊີເວບຂອງຂ້ອຍຄັ້ງທຳອິດ</h1>
<p id="id02">Hello!</p>
<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType;
</script>

ກຳລັງທຳນາຍສຳລັບພວກເຈົ້າ

ຄວາມສຳຄັນຂອງປະສົງ nodeType ���ອາດເປັນ:

ຫຼັກ ຊະນິດ ຄວາມປະສົງ
ELEMENT_NODE 1 <h1 class="heading">W3School</h1>
ATTRIBUTE_NODE 2 class = "heading" (ຖືກຖອນ)
TEXT_NODE 3 W3School
COMMENT_NODE 8 <!-- ນີ້ແມ່ນຄຳສັງເກດ -->
DOCUMENT_NODE 9 HTML ສະບັບແບບ (ເປັນພໍ່ <html>)
DOCUMENT_TYPE_NODE 10 <!Doctype html>

Type 2 ໃນ HTML DOM ໄດ້ຖືກຖອນ. XML DOM ບໍ່ຖືກຖອນ.