HTML DOM学习笔记

HTML DOM教程

什么是DOM

W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”

W3C DOM 标准被分为 3 个不同的部分:

  • 核心 DOM - 针对任何结构化文档的标准模型

  • XML DOM - 针对 XML 文档的标准模型

  • HTML DOM - 针对 HTML 文档的标准模型

什么是HTML DOM

  • HTML的标准对象模型

  • HTML的标准编程接口

  • W3C标准

  • HTML DOM定义了所有HTML元素的对象和属性,以及访问它们的方法。

    换言之,HTML DOM是关于如何获取、修改、添加或者删除HTML元素的标准。

HTML DOM 节点

在HTML DOM中,所有事物都是节点。DOM是被视为节点数的HTML。
  • 整个文档是一个文档节点
  • 每个 HTML 元素是元素节点
  • HTML 元素内的文本是文本节点
  • 每个 HTML 属性是属性节点
  • 注释是注释节点

DOM 节点树

通过HTML DOM,树中的所有节点均可以通过JavaScript访问。所有HTML节点均可被修改,也可以创建或删除节点。

节点父、子与同胞

父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

  • 在节点树中,顶端节点被称为根(root)
  • 每个节点都有父节点、除了根(它没有父节点)
  • 一个节点可拥有任意数量的子
  • 同胞是拥有相同父节点的节点
注意:

DOM处理中的常见错误是希望元素节点包含文本。

在本例中:DOM教程,元素节点是,包含值为“DOM教程”的<strong>文本节点</strong>。可通过节点的<strong>innerHTML属性</strong>来访问文本节点的值。</p> <h3 id="html-dom方法">HTML DOM方法</h3> <p>方法是我们可以在节点(HTML元素)上执行的动作。</p> <h4 id="编程接口">编程接口</h4> <p>可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。</p> <p>所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。</p> <p>方法是您能够执行的动作(比如添加或修改元素)。</p> <p>属性是您能够获取或设置的值(比如节点的名称或内容)。</p> <h4 id="getelementbyid方法">getElementById()方法</h4> <p>getElementById() 方法返回带有指定 ID 的元素:</p> <h6 id="例子">例子</h6> <pre><code>var element=document.getElementById("intro"); </code></pre> <h4 id="html-dom对象-方法和属性">HTML DOM对象-方法和属性</h4> <h5 id="一些常用的-html-dom-方法">一些常用的 HTML DOM 方法:</h5> <ul> <li>getElementById(id) - 获取带有指定 id 的节点(元素)</li> <li>appendChild(node) - 插入新的子节点(元素)</li> <li>removeChild(node) - 删除子节点(元素)</li> </ul> <h5 id="一些常用的-html-dom-属性">一些常用的 HTML DOM 属性:</h5> <ul> <li>innerHTML - 节点(元素)的文本值</li> <li>parentNode - 节点(元素)的父节点</li> <li>childNodes - 节点(元素)的子节点</li> <li>attributes - 节点(元素)的属性节点</li> </ul> <h3 id="html-dom属性">HTML DOM属性</h3> <blockquote> <p>属性是节点的值,您能够获取或设置。</p> </blockquote> <h4 id="编程接口-1">编程接口</h4> <p>可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。</p> <p>所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。</p> <p>方法是您能够执行的动作(比如添加或修改元素)。</p> <p>属性是您能够获取或设置的值(比如节点的名称或内容)。</p> <h5 id="innerhtml-属性">innerHTML 属性</h5> <p>获取元素内容的最简单方法是使用 innerHTML 属性。</p> <p>innerHTML 属性对于获取或替换 HTML 元素的内容很有用。</p> <pre><code><html> <body> <p id="intro">Hello World!</p> <script> var txt=document.getElementById("intro").innerHTML; document.write(txt); </script> </body> </html> // 在上面的例子中,getElementById 是一个方法,而 innerHTML 是属性。 //innerHTML 属性可用于获取或改变任意 HTML 元素,包括 <html> 和 <body> </code></pre> <h5 id="nodename属性">nodeName属性</h5> <p>nodeName 属性规定节点的名称。</p> <ul> <li>nodeName 是只读的</li> <li>元素节点的 nodeName 与标签名相同</li> <li>属性节点的 nodeName 与属性名相同</li> <li>文本节点的 nodeName 始终是 #text</li> <li>文档节点的 nodeName 始终是 #document</li> </ul> <p><strong>注释:</strong>nodeName 始终包含 HTML 元素的大写字母标签名。</p> <h5 id="nodevalue-属性">nodeValue 属性</h5> <p>nodeValue 属性规定节点的值。</p> <ul> <li>元素节点的 nodeValue 是 undefined 或 null</li> <li>文本节点的 nodeValue 是文本本身</li> <li>属性节点的 nodeValue 是属性值</li> </ul> <h4 id="获取元素的值">获取元素的值</h4> <pre><code><html> <body> <p id="intro">Hello World!</p> <script type="text/javascript"> x=document.getElementById("intro"); document.write(x.firstChild.nodeValue); </script> </body> </html> </code></pre> <h3 id="html-dom访问">HTML DOM访问</h3> <h4 id="访问-html-元素节点">访问 HTML 元素(节点)</h4> <p>访问 HTML 元素等同于访问节点</p> <p>您能够以不同的方式来访问 HTML 元素:</p> <ul> <li>通过使用 getElementById() 方法</li> <li>通过使用 getElementsByTagName() 方法</li> <li>通过使用 getElementsByClassName() 方法</li> </ul> <h3 id="html-dom修改">HTML DOM修改</h3> <p>修改 HTML = 改变元素、属性、样式和事件。</p> <h4 id="修改-html-元素">修改 HTML 元素</h4> <p>修改 HTML DOM 意味着许多不同的方面:</p> <ul> <li>改变 HTML 内容</li> <li>改变 CSS 样式</li> <li>改变 HTML 属性</li> <li>创建新的 HTML 元素</li> <li>删除已有的 HTML 元素</li> <li>改变事件(处理程序)</li> </ul> <h5 id="创建html内容">创建HTML内容</h5> <p>最简单的使用innerHTML属性。</p> <pre><code class="language-html"><!DOCTYPE html> <html> <body> <p id="p1">Hello World!</p> <script> document.getElementById("p1").innerHTML="New text!"; </script> <p>上面的段落被一段脚本改变了。</p> </body> </html> </code></pre> <h5 id="改变html样式">改变HTML样式</h5> <pre><code class="language-html"><!DOCTYPE html> <html> <body> <p id="p1">Hello world!</p> <p id="p2">Hello world!</p> <script> document.getElementById("p2").style.color="blue"; document.getElementById("p2").style.fontFamily="Arial"; document.getElementById("p2").style.fontSize="larger"; </script> </body> </html> </code></pre> <h5 id="创建新的html元素">创建新的HTML元素</h5> <p>如需向 HTML DOM 添加新元素,您首先必须创建该元素(元素节点),然后把它追加到已有的元素上。</p> <pre><code class="language-html"><!DOCTYPE html> <html> <body> <div id="div1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p> </div> <script> var para=document.createElement("p"); var node=document.createTextNode("This is new."); para.appendChild(node); var element=document.getElementById("div1"); element.appendChild(para); </script> </body> </html> </code></pre> <p>⏲️20200303181818</p> <p>🔗<a href="https://www.w3school.com.cn/htmldom/dom_modify.asp" target="_blank">https://www.w3school.com.cn/htmldom/dom_modify.asp</a></p> <h1 id="待续">待续</h1> <p><a href="https://www.w3school.com.cn/htmldom/dom_intro.asp" target="_blank">https://www.w3school.com.cn/htmldom/dom_intro.asp</a></p>

posted @ 2020-03-03 18:34  菜就多练forever  阅读(22)  评论(0)    收藏  举报