请看下面的 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

最新文章

  1. Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究
  2. ACM/ICPC 之 DFS+SPFA-贪心+最短路(POJ2679)
  3. iptables的conntrack表满了导致访问网站很慢
  4. 【原】ZenCoding中常用的CSS3样式
  5. phpcms更换域名用户无法注册问题
  6. ios8 新增的 showViewController 和 showDetailViewController
  7. Android 推送实现
  8. $.ajax、$.post、from表单序列化工具
  9. Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO
  10. Linux下c++通过动态链接库调用类
  11. KafkaSpout的处理流程
  12. Swift - 34 - 闭包的基础语法
  13. 基于winform的二进制图片数据的存取(用于数据库照片的读写处理)
  14. Intel&#174; Ethernet Connection I217-V 网卡驱动(win10 ,2012)
  15. JAVA项目复习的一些小细节
  16. (Java后端 Java web)面试时如何展示自己非技术方面的能力(其实就是综合能力)
  17. CentOS 7.6环境下安装中文字体库
  18. mysql锁分析相关的几个系统视图
  19. java 8中抽象类与接口的异同
  20. rsa.FromXmlString 系统找不到指定的文件

热门文章

  1. session的垃圾回收机制
  2. 你写的 Java 代码是如何一步步输出结果的? (转)
  3. idea 去除重复代码提醒
  4. java中的全局变量、局部变量与静态常量的区别
  5. Linux之常用脚本
  6. performance面板使用,以及解决动画卡顿
  7. vue中监听数据变化 watch
  8. MySQL查询一张表有多少个字段
  9. c++ 类的继承和多态例子
  10. Red Hat Enterprise Linux 6安装好,开启网卡到搭建tftp服务器和安装dnw驱动,安装samba服务器