news 2026/6/26 4:53:57

HTML DOM 基础:如何正确获取与修改博客标题?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HTML DOM 基础:如何正确获取与修改博客标题?

好久不见!今天让我们一起来学习document object model(文档对象模型)。简称DOM,它是一种允许程序动态地访问或更新HTML文档的内容、结构和样式,且提供一系列函数和对象来实现增删改查操作。

一:获取DOM节点

我们要对页面元素进行修改或增加,第一步必须获取对应DOM节点。其核心原理有两点:①浏览器的渲染机制决定必须通过DOM操作;②DOM节点是内存中对象引用。获取DOM节点有四种方法:

1:通过ID名去获取(getElementById

作用:通过唯一ID精准获取元素(性能最高)。

const p3 = document.getElementById("p1"); console.log(p1);

2.通过标签名去获取(getElementsByTagName)

作用:根据指定的 HTML 标签名,获取当前文档或指定父元素下所有匹配的元素。

<body> <p class="pp">我是段落1</p> <p class="pp">我是段落2</p> <p class="pp" id="p1">我是段落1</p> </body>

3.通过class名去获取(getElementsByClassName)

作用:根据指定的 CSS 类名,获取当前文档或指定父元素下所有匹配的元素

const p2 = document.getElementsByClassName("pp"); console.log(p3); console.log(p2[1]); console.log(p2[2]); console.log(p2[3]);

4.通过CSS选择器获取

方法①:querySelector(获取单个节点),返回值为:匹配到的第一个元素对象;如果找不到,返回null;

const p1 = document.querySelector(".pp");

方法②:querySelector(获取多个节点),返回值为:一个包含所有匹配元素的 静态 NodeList 集合。如果没有匹配项,返回一个空的 NodeList(而不是null)。

const p2 = document.querySelectorAll(".pp"); console.log(p2); console.log(p2[0]); console.log(p2[1]); console.log(p2[2]);

二:DOM节点的属性修改

作用:在不刷新页面的情况下,动态改变元素的特征、状态、样式或内容,从而实现丰富的用户交互和动态数据展示。

①:查看元素节点的属性并修改属性

const p3 = document.getElementById("p3"); console.log("旧属性值:", p3.className); console.log("旧属性值:", p3.id); p3.className = "pp jj yy xx"; p3.id = "_p_3"; console.log("新属性值:", p3.className); console.log("新属性值:", p3.id);

②:classList对象的操作

const p4 = document.getElementById("p4"); p4.classList.add("zz"); console.log(p4.classList); 4.classList.remove("xx"); console.log(p4.classList); console.log(p4.classList.contains("jj")); console.log(p4.classList.contains("zz")); p4.classList.toggle("dark-mode");

③:其他属性的查看与修改

const img = document.getElementById("img1"); console.log("修改前:", img.src); img.src = "./img_src/logo1.png"; console.log("修改后:", img.src);

三:节点的创建、插入与删除

1.创建节点

<script> var ele = document.createElement("p"); var txt = document.createTextNode("我是用Javascript创建的新节点"); console.log(txt); var attr = document.createAttribute("class"); attr.value = "hello world"; console.log(attr); </script>

2.插入节点

<script> ele.appendChild(txt); ele.setAttributeNode(attr); const body_node = document.getElementsByTagName("body")[0]; body_node.appendChild(ele); </script>

3.删除节点

<script> const p3 = document.getElementById("p1"); body_node.removeChild(p1); </script>
四:小结

DOM是连接JS与网页的桥梁。本章博客讲解了DOM核心操作:通过ID、标签、类名及CSS选择器精准获取节点;利用属性赋值与classList动态修改元素状态与样式;掌握节点的创建、插入与删除方法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 4:48:50

Python构建移动安全RASP分析工具:从原理到实战

1. 项目概述&#xff1a;从“被动防御”到“主动免疫”的移动安全新范式在移动应用安全领域&#xff0c;传统的“防火墙杀毒”模式早已捉襟见肘。攻击者不再满足于外围突破&#xff0c;而是将矛头直接对准了应用的核心——运行时内存与逻辑。你是否遇到过这样的场景&#xff1a…

作者头像 李华
网站建设 2026/6/26 4:47:24

如何微调一个大模型:从数据准备到模型上线的完整流程

过去一年&#xff0c;很多人都在讨论大模型。 有人关注 Prompt&#xff0c;有人关注 RAG&#xff0c;有人关注 Agent&#xff0c;也有人开始问一个更深入的问题&#xff1a;能不能把一个通用大模型&#xff0c;训练成更懂我业务、更符合我需求的专属模型&#xff1f;这就涉及一…

作者头像 李华
网站建设 2026/6/26 4:44:34

Kostka-Foulkes多项式与Chebyshev多项式的表示论桥梁

1. 引言&#xff1a;一个代数组合学中的“翻译”问题如果你在表示论或者代数组合学领域摸爬滚打过一段时间&#xff0c;大概率会碰到一个让人又爱又恨的场景&#xff1a;你手头有一套非常漂亮、结构清晰的数学对象&#xff0c;比如某个李代数的表示&#xff0c;或者某个对称函数…

作者头像 李华
网站建设 2026/6/26 4:38:37

公交双目智能客流统计终端,高精度统计的核心技术原理

城市公共交通的精细化调度与线网优化高度依赖高置信度的客流时空数据。传统单目视觉计数、人工核验等客流统计方式&#xff0c;在车载动态场景中普遍受乘客密集遮挡、车体颠簸振动、车内光照扰动、行李等非人体目标干扰等因素制约&#xff0c;统计精度与场景鲁棒性难以满足运营…

作者头像 李华
网站建设 2026/6/26 4:34:30

图像识别化技术目标检测模型训练数据标注策略

图像识别技术中的目标检测模型近年来在自动驾驶、安防监控、医疗影像等领域展现出巨大潜力&#xff0c;而模型的性能高度依赖于训练数据的标注质量。数据标注策略不仅决定了模型的学习效果&#xff0c;还直接影响泛化能力和应用落地。本文将深入探讨目标检测数据标注的核心策略…

作者头像 李华
网站建设 2026/6/26 4:29:08

小程序开发公司哪家好?挑选技巧分享

小程序开发公司哪家好&#xff1f;挑选技巧分享挑选小程序开发公司时&#xff0c;中小企业更适合用“资质可信、案例相关、收费清楚”三条线来筛选&#xff0c;而不是简单寻找所谓更好的公司。根据企业数字化采购实践总结&#xff0c;开发模式通常分为SaaS模板、半定制和定制开…

作者头像 李华