JavaScript 与 DOM 交互

简介: 【9月更文挑战第01天】

操作 HTML 元素:JavaScript 与 DOM 交互

JavaScript 提供了强大的功能来操作 HTML 文档,这主要通过文档对象模型(DOM)实现。DOM 是 HTML 文档的编程接口,它将页面上的元素表示为对象,允许JavaScript动态地访问和操作它们。

选择元素

在操作元素之前,首先需要选择它们。以下是几种常见的选择元素的方法:

  • document.getElementById(id): 通过元素的ID选择元素。
  • document.getElementsByTagName(name): 根据标签名选择元素集合。
  • document.getElementsByClassName(name): 根据类名选择元素集合。
  • document.querySelector(selector): 使用CSS选择器返回文档中匹配的第一个元素。
  • document.querySelectorAll(selector): 使用CSS选择器返回所有匹配的元素集合。

操作元素

一旦选择了元素,就可以对它们执行各种操作:

  1. 更改内容:

    • element.innerHTML: 获取或设置元素的HTML内容。
    • element.textContent: 获取或设置元素的文本内容。
  2. 样式操作:

    • element.style.property: 直接设置内联样式。
  3. 属性操作:

    • element.getAttribute(name): 获取元素的属性值。
    • element.setAttribute(name, value): 设置元素的属性值。
    • element.removeAttribute(name): 移除元素的属性。
  4. 事件监听:

    • element.addEventListener(type, listener): 为元素添加事件监听器。
  5. 尺寸和布局:

    • element.offsetWidthelement.offsetHeight: 获取元素的布局尺寸(包括边框和内边距)。
    • element.clientWidthelement.clientHeight: 获取元素的宽度和高度(不包括垂直滚动条)。
  6. 类操作:

    • element.classList.add(name): 向元素添加类。
    • element.classList.remove(name): 从元素移除类。
    • element.classList.toggle(name): 切换元素的类。

代码示例

以下是一个示例,展示了如何使用JavaScript操作HTML元素:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>操作 HTML 元素示例</title>
    <style>
        .highlight {
    
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div id="myDiv">Hello, World!</div>
    <button id="changeTextBtn">更改文本</button>
    <button id="changeStyleBtn">更改样式</button>
    <button id="addClassBtn">添加类</button>
    <script>
        // 选择元素
        var myDiv = document.getElementById('myDiv');
        var changeTextBtn = document.getElementById('changeTextBtn');
        var changeStyleBtn = document.getElementById('changeStyleBtn');
        var addClassBtn = document.getElementById('addClassBtn');

        // 更改文本内容
        changeTextBtn.addEventListener('click', function() {
    
            myDiv.textContent = '文本已更改!';
        });

        // 更改样式
        changeStyleBtn.addEventListener('click', function() {
    
            myDiv.style.color = 'red';
            myDiv.style.fontSize = '20px';
        });

        // 添加类
        addClassBtn.addEventListener('click', function() {
    
            myDiv.classList.add('highlight');
        });
    </script>
</body>
</html>

在这个示例中,我们有一个 div 元素和三个按钮。点击这些按钮将分别更改 div 的文本内容、样式和类。

目录
相关文章
|
29天前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
34 5
|
1月前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
13 1
js之DOM 文档对象模型
|
15天前
|
JavaScript 前端开发 UED
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
【8月更文挑战第30天】在Vue.js中,动画与过渡效果不仅是视觉点缀,更是提升用户体验的关键。通过流畅的动态效果,应用的互动性和吸引力得以增强,从而提高用户满意度和参与度。`&lt;transition&gt;`和`&lt;transition-group&gt;`组件结合CSS过渡,可轻松实现元素的进入、离开及列表变化动画。合理的性能优化,如使用硬件加速,能避免页面卡顿,确保动画既美观又高效。下面是一个简单的淡入淡出效果示例,展示了如何利用Vue.js实现平滑的动画过渡。总之,恰当的动画设计能显著提升应用的用户体验。
31 0
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
|
19天前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
39 1
|
24天前
|
JSON JavaScript 前端开发
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
JS的无限可能: 前端 精妙DOM技巧至Node.js的服务端
|
1月前
|
XML JavaScript 前端开发
JavaScript中的DOM解析器DOMParser api的讲解
`DOMParser`能将XML或HTML源码字符串解析成DOM `Document`。通过`new DOMParser()`创建实例,使用`.parseFromString(string, type)`方法进行解析,其中`string`为待解析的字符串,`type`指定解析类型如`text/html`或`text/xml`等,返回一个`Document`对象。例如,可解析包含`&lt;p&gt;666&lt;/p&gt;`的字符串并获取其文本内容`666`。
73 1
|
14天前
|
Devops 持续交付 测试技术
JSF遇上DevOps:开发流程将迎巨变?一篇文章带你领略高效协同的魅力!
【8月更文挑战第31天】本文探讨了如何在JavaServer Faces(JSF)开发中融入DevOps文化,通过持续集成与部署、自动化测试、监控与日志记录及反馈机制,提升软件交付速度与质量。文中详细介绍了使用Jenkins进行自动化部署、JUnit与Selenium进行自动化测试、ELK Stack进行日志监控的具体方法,并强调了持续改进的重要性。
24 0
|
30天前
|
前端开发 JavaScript
前端 JavaScript 与 HTML 怎么实现交互
前端 JavaScript 与 HTML 怎么实现交互
|
30天前
|
JavaScript 前端开发
js之DOM 文档对象模型
js之DOM 文档对象模型
|
1月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
23 0