JavaScript HTML DOM µ¼º½

ͨ¹ý HTML DOM£¬ÄúÄܹ»Ê¹ÓÃ½Úµã¹ØÏµÀ´µ¼º½½ÚµãÊ÷¡£

DOM ½Úµã

¸ù¾Ý W3C HTML DOM ±ê×¼£¬HTML ÎĵµÖеÄËùÓÐÊÂÎï¶¼Êǽڵ㣺

  • Õû¸öÎĵµÊÇÎĵµ½Úµã
  • ÿ¸ö HTML ÔªËØÊÇÔªËØ½Úµã
  • HTML ÔªËØÄÚµÄÎı¾ÊÇÎı¾½Úµã
  • ÿ¸ö HTML ÊôÐÔÊÇÊôÐÔ½Úµã
  • ËùÓÐ×¢ÊÍÊÇ×¢Êͽڵã
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 - ÎĵµµÄ 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 ÊôÐԹ涨½ÚµãµÄÖµ¡£

  • ÔªËØ½ÚµãµÄ nodeValue ÊÇ undefined
  • Îı¾½ÚµãµÄ nodeValue ÊÇÎı¾Îı¾
  • ÊôÐÔ½ÚµãµÄ nodeValue ÊÇÊôÐÔÖµ

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 ÖÐδÆúÓá£

VUE