DOM概念

三种节点:
<p title = "notes"> Don't forget buy the stuff </p>
元素节点(element node): p
文本节点(text node): Don't forget buy the stuff
属性节点(attribute node):title = “notes”

getElementById() 返回一个对象 ( 元素节点)
getElementByTagName() 参数是“li”、“p”,“ul”等标签,返回的数组 ( 元素节点)

getAttribute() 属性对象。
setAttribute()
设置属性后,源文件不会改变。


判断是否为空:if(text != null) , 简写成:if(text)
JavaScript 中的 DOM(Document Object Model,文档对象模型)是网页编程中的核心概念之一,它将 HTML 或 XML 文档表示为一个树状结构,其中每个节点都是文档中的一个部分(如元素、属性、文本等)。通过 DOM,开发者可以使用 JavaScript 动态地访问、修改、添加或删除页面中的内容、结构和样式。 ### DOM 的基本结构 DOM 将 HTML 文档解析为一个由节点组成的树形结构,称为文档树。每个节点可以是元素节点、属性节点、文本节点等。例如,`<div>` 标签对应一个元素节点,其 `id` 或 `class` 属性则对应属性节点,而标签之间的文本内容则对应文本节点。 DOM 的根节点是 `document` 对象,它是访问整个文档结构的入口点。通过 `document` 可以访问和操作页面上的任何节点。 ### DOM 操作的核心方法 DOM 提供了多种方法来选择和操作元素节点。以下是一些常见的 DOM 操作方法: - **根据 ID 获取元素**:`document.getElementById(id)` 返回一个匹配指定 ID 的元素节点。 - **根据标签名获取元素集合**:`document.getElementsByTagName(tagName)` 返回一个包含所有匹配指定标签名的元素的 HTMLCollection。 - **根据类名获取元素集合**:`document.getElementsByClassName(className)` 返回一个包含所有匹配指定类名的元素的 NodeList。 - **根据 CSS 选择器获取第一个匹配元素**:`document.querySelector(selector)` 返回第一个匹配指定 CSS 选择器的元素。 - **根据 CSS 选择器获取所有匹配元素**:`document.querySelectorAll(selector)` 返回一个包含所有匹配指定 CSS 选择器的元素的 NodeList。 ### DOM 属性操作 DOM 允许读取、修改或删除 HTML 元素的属性。常用的方法包括: - **获取属性值**:`element.getAttribute(attributeName)` 用于获取指定属性的值。 - **设置属性值**:`element.setAttribute(attributeName, value)` 用于设置指定属性的值。 - **移除属性**:`element.removeAttribute(attributeName)` 用于移除指定属性。 例如,可以通过 `element.setAttribute("class", "new-class")` 来动态更改元素的类名,从而应用新的样式。 ### 动态创建和操作 DOM 节点 除了对现有 DOM 节点进行操作外,还可以动态创建新的节点并将其插入到文档中: - **创建元素节点**:`document.createElement(tagName)` 创建一个新的元素节点。 - **创建文本节点**:`document.createTextNode(text)` 创建一个新的文本节点。 - **将子节点添加到父节点中**:`parentNode.appendChild(childNode)` 将指定的子节点添加到父节点的子节点列表的末尾。 - **在指定子节点前插入新节点**:`parentNode.insertBefore(newNode, referenceNode)` 在指定的参考节点前插入新节点。 ### 示例:动态修改页面内容 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>DOM 操作示例</title> </head> <body> <div id="container"></div> <button onclick="addContent()">点击添加内容</button> <script> function addContent() { // 创建一个新的段落元素 var newParagraph = document.createElement("p"); // 创建文本节点 var textNode = document.createTextNode("这是通过 JavaScript 动态添加的内容。"); // 将文本节点添加到段落元素中 newParagraph.appendChild(textNode); // 获取容器元素 var container = document.getElementById("container"); // 将段落元素添加到容器中 container.appendChild(newParagraph); } </script> </body> </html> ``` ### DOM 的作用与意义 DOM 不仅提供了访问和操作文档内容的能力,还为网页的动态交互提供了基础。通过结合事件处理(如 `onclick`、`onmouseover` 等),可以实现丰富的用户交互效果。此外,现代前端框架(如 React、Vue.js 等)虽然抽象了 DOM 操作,但其底层依然依赖于 DOM API。 DOM 的灵活性和强大功能使其成为前端开发不可或缺的一部分。掌握 DOM 操作是构建动态网页和实现复杂交互逻辑的关键[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值