HTML DOM的学习

请看下面的 HTML 片段:

<html>
  <head>
    <title>DOM 教程</title>
  </head>
  <body>
    <h1>DOM 第一课</h1>
    <p>Hello world!</p>
  </body>
</html>

从上面的 HTML 中:

  • <html> 节点没有父节点;它是根节点
  • <head> 和 <body> 的父节点是 <html> 节点
  • 文本节点 "Hello world!" 的父节点是 <p> 节点

并且:

  • <html> 节点拥有两个子节点:<head> 和 <body>
  • <head> 节点拥有一个子节点:<title> 节点
  • <title> 节点也拥有一个子节点:文本节点 "DOM 教程"
  • <h1> 和 <p> 节点是同胞节点,同时也是 <body> 的子节点

并且:

  • <head> 元素是 <html> 元素的首个子节点
  • <body> 元素是 <html> 元素的最后一个子节点
  • <h1> 元素是 <body> 元素的首个子节点
  • <p> 元素是 <body> 元素的最后一个子节点
  • HTML DOM 对象 - 方法和属性

    一些常用的 HTML DOM 方法:

    • getElementById(id) - 获取带有指定 id 的节点(元素)
    • appendChild(node) - 插入新的子节点(元素)
    • removeChild(node) - 删除子节点(元素)

    一些常用的 HTML DOM 属性:

    • innerHTML - 节点(元素)的文本值
    • parentNode - 节点(元素)的父节点
    • childNodes - 节点(元素)的子节点
    • attributes - 节点(元素)的属性节点

    您将在本教程的下一章中学到更多有关属性的知识。

    方法描述
    getElementById() 返回带有指定 ID 的元素。
    getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
    getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。
    appendChild() 把新的子节点添加到指定节点。
    removeChild() 删除子节点。
    replaceChild() 替换子节点。
    insertBefore() 在指定的子节点前面插入新的子节点。
    createAttribute() 创建属性节点。
    createElement() 创建元素节点。
    createTextNode() 创建文本节点。
    getAttribute() 返回指定的属性值。
    setAttribute() 把指定属性设置或修改为指定的值。

    这里的意思是 获取元素id=a的div元素的innerHTML就是文本的值

    HTML DOM 属性

    属性是节点(HTML 元素)的值,您能够获取或设置。

    编程接口

    可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。

    所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。

    方法是您能够执行的动作(比如添加或修改元素)。

    属性是您能够获取或设置的值(比如节点的名称或内容)。

    innerHTML 属性

    获取元素内容的最简单方法是使用 innerHTML 属性。

    innerHTML 属性对于获取或替换 HTML 元素的内容很有用。

    实例

    下面的代码获取 id="intro" 的 <p> 元素的 innerHTML:

    实例

    <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>。

    nodeName 属性

    nodeName 属性规定节点的名称。

    • nodeName 是只读的
    • 元素节点的 nodeName 与标签名相同
    • 属性节点的 nodeName 与属性名相同
    • 文本节点的 nodeName 始终是 #text
    • 文档节点的 nodeName 始终是 #document

    注释:nodeName 始终包含 HTML 元素的大写字母标签名。

    nodeValue 属性

    nodeValue 属性规定节点的值。

    • 元素节点的 nodeValue 是 undefined 或 null
    • 文本节点的 nodeValue 是文本本身
    • 属性节点的 nodeValue 是属性值

    获取元素的值

    下面的例子会取回 <p id="intro"> 标签的文本节点值:

    实例

    <html>
    <body>
    
    <p id="intro">Hello World!</p>
    
    <script type="text/javascript">
    x=document.getElementById("intro");
    document.write(x.firstChild.nodeValue);
    </script>
    
    </body>
    </html>
    

    亲自试一试

    nodeType 属性

    nodeType 属性返回节点的类型。nodeType 是只读的。

    比较重要的节点类型有:

    元素类型NodeType
    元素 1
    属性 2
    文本 3
    注释 8
    文档 9
原文地址:https://www.cnblogs.com/-zhong/p/10972637.html