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

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

使用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>

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

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

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

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

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

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

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

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

实例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>

实例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>
</html>

图片

实例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>

图片

二、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>
</html>

图片

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

图片

注意:

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

2. nodeValue 属性

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

3. nodeType 属性

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

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

图片

三、总结

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

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

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

2021-11-26 11:10:07

JavaScript 节点导航

2020-10-20 15:37:48

了解JavaScrip

2021-11-16 07:54:33

JavaScript导航HTML

2021-05-07 14:17:01

JavaScript元素网页

2023-09-06 14:57:46

JavaScript编程语言

2024-04-19 14:23:52

SwitchJavaScript开发

2023-07-30 15:18:54

JavaScript属性

2024-01-30 13:47:45

2021-03-09 14:04:01

JavaScriptCookie数据

2021-06-24 09:05:08

JavaScript日期前端

2021-05-18 08:30:42

JavaScript 前端JavaScript时

2021-03-05 18:04:15

JavaScript循环代码

2021-01-26 23:46:32

JavaScript数据结构前端

2021-01-29 18:41:16

JavaScript函数语法

2021-02-02 18:39:05

JavaScript

2020-11-10 10:48:10

JavaScript属性对象

2021-06-04 09:56:01

JavaScript 前端switch

2023-05-30 15:06:21

JavaScript属性开发

2023-06-15 10:11:08

JavaScript函数表达式

2023-07-06 14:40:38

点赞
收藏

51CTO技术栈公众号