一篇文章带你了解JavaScript htmldom 导航

开发 前端
本文基于JavaScript,介绍了页面上htmldom 导航的节点。节点和节点之间的关系,采用生动的比喻进行讲解。以及根节点的属性进行了详细讲解。通过丰富的案例,运行效果图的展示。希望能帮助读者更好的学习。

[[347406]]

使用HTML DOM,可以使用节点关系来导航"节点树"。

一、DOM 节点

在一个HTML文档都是一个节点,The entire document is a document node 每个HTML元素是元素节点 在HTML元素的文本是文本节点 每一个HTML属性是一个属性节点 所有注释都是注释节点。

使用HTML DOM, 在节点树的所有节点可以通过JavaScript访问。可以创建新节点,并可以修改或删除所有节点。

1. 节点关系

节点树中的节点彼此具有层次关系。

2. 子节点和节点值

在DOM处理中常见的错误就是认为一个元素节点包含文本。

<title id="demo">DOM Tutorial</title> 
  • 1.

元素节点<title> (在上面的实例中) 不包含文本。

它包含有值的文本节点 "DOM Tutorial"。

该文本节点的值可以通过节点的innerHTML属性访问。

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

访问innerHTML属性访问和访问第一个子节点值相同:

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

访问第一个子节点也可以这样做:

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

实例1:

查询<h1>元素的文本,并且拷贝它到<p>元素。

<!DOCTYPE html> 
<html lang="en"
<head> 
<meta charset="UTF-8"
<title>项目</title> 
</head> 
<body style="background-color: aqua;"
 
<h1 id="id01">My First Page</h1> 
<p id="id02"></p> 
 
<script> 
document.getElementById("id02").innerHTML = document.getElementById("id01").innerHTML; 
</script> 
 
</body> 
</html> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

实例2:

<!DOCTYPE html> 
<html lang="en"
<head> 
<meta charset="UTF-8"
<title>项目</title> 
</head> 
<body style="background-color: aqua;"
 
   <h1 id="id01">My First Page</h1> 
    <p id="id02"></p> 
 
 <script> 
  document.getElementById("id02").innerHTML =         document.getElementById("id01").firstChild.nodeValue; 
</script> 
 
</body> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

实例3 :

<!DOCTYPE html> 
<html lang="en"
<head> 
<meta charset="UTF-8"
<title>项目</title> 
</head> 
<body style="background-color: aqua;"
   <h1 id="id01">My First Page</h1> 
    <p id="id02">Hello!</p> 
 
   <script> 
    document.getElementById("id02").innerHTML =       document.getElementById("id01").childNodes[0].nodeValue; 
</script> 
 
</body> 
</html> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

二、DOM 根节点
有两个特殊属性允许访问完整文档:

document.body - 文档主体

<!DOCTYPE html> 
<html lang="en"
<head> 
<meta charset="UTF-8"
<title>项目</title> 
</head> 
<body style="background-color: aqua;"
 
<h1 id="id01">我的第一个页面</h1> 
<p id="id02"></p> 
 
<script> 
document.getElementById("id02").innerHTML = document.getElementById("id01").childNodes[0].nodeValue; 
</script> 
 
 
</body> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

document.documentElement - 完整的文档

<!DOCTYPE html> 
<html lang="en"
  <head> 
    <meta charset="UTF-8"
    <title>项目</title> 
  </head> 
  <body style="background-color: aqua;"
  <p>Hello World!</p> 
  <div> 
  <p>The DOM is very useful!</p> 
   <p>This example demonstrates the <b>document.documentElement</b> property.</p> 
  </div> 
 
  <script> 
    alert(document.documentElement.innerHTML); 
</script> 
 
</body> 
</html> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

1. nodeName 属性
nodeName属性指定一个节点的名称,nodeName 是只读的。

  1. nodeName 是只读的。
  2. nodeName 一个元素节点的节点名称和标签名称相同。
  3. 一个属性节点的节点名称是属性名。
  4. 一个文本节点的nodeName总是 #text。
  5. 文档的节点名称总是 #document。
<h1 id="id01">My First Page</h1> 
<p id="id02"></p> 
 
<script> 
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeName; 
</script> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

注意:

nodeName总是包含HTML元素的大写标签名称。

2. nodeValue 属性
nodeValue 属性指定节点的值。素节点的节点值是 undefined,文本节点的节点是文本本身,属性节点的节点值是属性值。

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

<script> 
document.getElementById("id02").innerHTML = document.getElementById("id01").nodeType; 
</script> 
  • 1.
  • 2.
  • 3.

三、总结
本文基于JavaScript,介绍了页面上htmldom 导航的节点。节点和节点之间的关系,采用生动的比喻进行讲解。以及根节点的属性进行了详细讲解。通过丰富的案例,运行效果图的展示。希望能帮助读者更好的学习。

使用JavaScript 语言,方便大家更好理解,希望对大家的学习有帮助。

 

责任编辑:姜华 来源: 前端进阶学习交流
相关推荐

2021-11-16 07:54:33

JavaScript导航HTML

2021-11-26 11:10:07

JavaScript 节点导航

2023-06-01 17:10:12

HTMLJavaScript

2025-03-21 12:54:01

2021-05-07 14:17:01

JavaScript元素网页

2025-02-25 11:12:53

JavaScriptHTML元素CSS

2024-04-19 14:23:52

SwitchJavaScript开发

2024-01-30 13:47:45

2021-01-26 23:46:32

JavaScript数据结构前端

2021-05-18 08:30:42

JavaScript 前端JavaScript时

2021-03-05 18:04:15

JavaScript循环代码

2023-07-30 15:18:54

JavaScript属性

2023-09-06 14:57:46

JavaScript编程语言

2021-03-09 14:04:01

JavaScriptCookie数据

2021-06-24 09:05:08

JavaScript日期前端

2020-11-10 10:48:10

JavaScript属性对象

2021-06-04 09:56:01

JavaScript 前端switch

2021-02-02 18:39:05

JavaScript

2021-01-29 18:41:16

JavaScript函数语法

2021-06-22 10:12:37

JavaScript 前端While 循环
点赞
收藏

51CTO技术栈公众号