JavaScript HTML DOM Muonyesho

通过 HTML DOM,您能够使用节点关系来导航节点树。

DOM 节点

Kwa mabomu ya W3C ya HTML DOM, kila kitu cha mawongozo ya HTML ni mwanzi:

  • Kipya cha mawongozo ni mwanzi ya mawongozo
  • Kila mafuta ya HTML ni mwanzi ya mafuta
  • Matukio ya mafuta ya HTML ni mwanzi ya matukio
  • Kila mafuta ya HTML ni mwanzi ya mafuta
  • Wote wengi ni mawongozo ya mawongozo
Mifupi ya DOM HTML

Na HTML DOM, mawongozo yote ya mto wa mawongozo yana uwezo wa kufikia kwa JavaScript.

Inaweza kumaliza mawongozo mpya, inaweza kurekebisha na kufa kila mwanzi.

Mawongozo

Mawongozo ya mto wa mawongozo ni na ukosemu na ukosemu.

  • Maneno (mwanzi, mwanzi, wengi, na sibling) yanayotumiwa kuonyesha mawasiliano haya.
  • Kwenye mto wa mawongozo, mto wa juu haujulikana kama mto wa kuzingatia (mto wa kuzingatia hau na mwanzi).
  • Mwongozo wote wana mwanzi, kwa sababu mto wa kuzingatia hau na mwanzi.
  • Mwongozo inaweza kuwa na uumelezi wa watoto
  • Wengi (wanau au wanaume) ni wenzoe wanao na mwanzi wa kawaida.
<html>
   <head>
       <title>Kitabu cha Mafundisho ya DOM</title>
   </head>
  <body>
       <h1>Shule ya DOM ya Kwanza</h1>
       <p>Hello world!</p>
   </body>
</html> 
Mifupi ya DOM HTML

Kwa huzuni ya HTML hii inaweza kureadha taarifa hizo:

  • <html> ni mto wa kuzingatia
  • <html> hau na mwanzi
  • <html> ni mwanzi wa <head> na <body>
  • <head> niwe na <html> wa kwanza mwanzi
  • <body> ni kina wa kwanza wa <html>

Kwa pengine:

  • <head> ina kina moja: <title>
  • <title> ina kina moja (kina andiko): "DOM Mafunzo"
  • <body> ina wana wadhihia wawili: <h1> na <p>
  • <h1> ina kina moja: "DOM Mwako wa Kwanza"
  • <p> ina kina moja: "Hello world!"
  • <h1> na <p> ni wafamilia

Kuafikia kina kati

Kwa JavaScript, unaweza kutumia hisia za kina hizi kwenye kina kati kwa kutumia:

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

Hisia za kina na hisia za kiwango

Mafano ya kosa ya kawaida ya DOM ni kuamini kwamba hisia ya elementi ina andiko.

Mifano:

<title id="demo">DOM Mafunzo</title>

Hisia ya elementi <title> (kwenye mifano inayotumiwa) HainaAndiko.

Ni kina inayohusika na andiko ya "DOM Mafunzo"Hisia ya andiko.

Inafikia katika hisia ya andiko kwa kufikia kina kwa kiwango cha kwanza: innerHTML Inafikia kwa kufikia katika kiwango cha kwanza kwa kiwango cha kwanza:

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

Kufikia katika kiwango kinasababisha kufikia kina kwanza kwa kiwango cha kwanza: nodeValue:

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

Inaweza kutumia hivyo kufikia kina kwanza:

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

Mifano inayotumiwa kudai... <h1> Hisia yaandiko wa hisia na kurepika <p> Hisia kwa:

Mifano 1

<html>
<body>
<h1 id="id01">mwangalizi ya pili ya kwanza</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML  = document.getElementById("id01").innerHTML;
</script>
</body>
</html>

亲自试一试

Mifano 2

<html>
<body>
<h1 id="id01">mwangalizi ya pili ya kwanza</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML = document.getElementById("id01").firstChild.nodeValue;
</script>
</body>
</html>

亲自试一试

Mifano 3

<html>
<body>
<h1 id="id01">mwangalizi ya pili ya kwanza</h1>
<p id="id02">Hello!</p>
<script>
 document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue;
</script>
</body>
</html>

亲自试一试

InnerHTML

Kwenye mafunzo hii, tunatumia innerHTML Inapata maudhui ya kina ya HTML.

Tena, ujenzi wa makosa mengine unaaminika kusababisha kusoma struktura ya mawasiliano wa kawaida na ujenzi wa kina.

Kitumiaji cha kawaida cha DOM

Wana uhusiano wa kawaida mbili ambao wanaingia katika mawasiliano wa kawaida kwa kina:

  • document.body - Mtuagizaji wa mawasiliano wa kawaida wa kina
  • document.documentElement - Mtuagizaji wa mawasiliano wa kawaida

Mfano

<html>
<body>
<p>Hello World!</p>
<div>
<p>DOM inapata matumizi mengi!</p>
<p>Shughuli hii inadhumisha <b>document.body</b> ya kina.</p>
</div>
<script>
 alert(document.body.innerHTML);
</script>
</body>
</html>

亲自试一试

Mfano

<html>
<body>
<p>Hello World!</p>
<div>
<p>DOM inapata matumizi mengi!</p>
<p>Shughuli hii inadhumisha <b>document.documentElement</b> ya kina.</p>
</div>
<script>
alert(document.documentElement.innerHTML);
</script>
</body>
</html>

亲自试一试

nodeName ya kina

nodeName Inasaidia jina la kina.

  • nodeName ni inayokusudiwa
  • nodeName ya kina ya kina inaelezea jina la kina
  • nodeName ya kina ya thamani inaainisha jina la thamani
  • nodeName ya kina ya matukio inaainisha #text
  • nodeName ya kina ya kawaida inaainisha #document

Mfano

<h1 id="id01">Miaa ya kwanza ya pweke</h1>
<p id="id02">Hello!</p>
<script>
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName;
</script>

亲自试一试

Tahara:nodeName inahusiana na jina la kina cha kina cha HTML kwa kibali

nodeValue ya kina

nodeValue Inasaidia thamani ya kina.

  • nodeValue ya kina ya kina inaangazia uadilifu
  • nodeValue ya kina ya matukio ni matukio ya maandiko
  • nodeValue ya kina inaainisha thamani ya kina

nodeType ya kina

nodeType Inatoa uhusiano wa kilele cha kitumiaji cha kina.nodeType ni inayokusudiwa.

Mfano

<h1 id="id01">Miaa ya kwanza ya pweke</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 中未弃用。