当前位置:首页 > JavaScript

js实现dom

2026-03-14 19:44:30JavaScript

使用原生JavaScript操作DOM

原生JavaScript提供了多种方法来操作DOM(文档对象模型)。这些方法允许动态修改网页内容、结构和样式。

创建元素

const newElement = document.createElement('div');
newElement.textContent = '新创建的元素';
document.body.appendChild(newElement);

选择元素

// 通过ID选择
const elementById = document.getElementById('myId');

// 通过类名选择
const elementsByClass = document.getElementsByClassName('myClass');

// 通过标签名选择
const elementsByTag = document.getElementsByTagName('div');

// 使用CSS选择器
const element = document.querySelector('#container .item');
const elements = document.querySelectorAll('.items');

修改元素内容

// 修改文本内容
element.textContent = '新文本内容';

// 修改HTML内容
element.innerHTML = '<strong>加粗文本</strong>';

添加和移除事件监听器

事件处理是DOM操作的重要组成部分,允许对用户交互做出响应。

添加事件监听

const button = document.querySelector('button');
button.addEventListener('click', function() {
    console.log('按钮被点击');
});

移除事件监听

function handleClick() {
    console.log('点击处理');
}
button.addEventListener('click', handleClick);

// 稍后移除
button.removeEventListener('click', handleClick);

修改元素样式和类

动态修改元素外观可以通过直接操作style属性或类名实现。

修改内联样式

element.style.color = 'red';
element.style.backgroundColor = '#f0f0f0';

操作类名

// 添加类
element.classList.add('active');

// 移除类
element.classList.remove('inactive');

// 切换类
element.classList.toggle('visible');

// 检查类是否存在
if (element.classList.contains('hidden')) {
    // 执行操作
}

遍历和操作DOM树

了解如何遍历DOM树对于复杂操作非常重要。

父节点和子节点

// 获取父节点
const parent = element.parentNode;

// 获取子节点
const firstChild = parent.firstChild;
const lastChild = parent.lastChild;
const children = parent.children;

兄弟节点

const nextSibling = element.nextSibling;
const previousSibling = element.previousSibling;

动态修改DOM结构

除了创建新元素,还可以修改现有DOM结构。

插入元素

// 在参考节点前插入
parent.insertBefore(newElement, referenceElement);

// 在末尾追加
parent.appendChild(newElement);

替换元素

parent.replaceChild(newElement, oldElement);

移除元素

parent.removeChild(childElement);

// 现代方法
childElement.remove();

使用文档片段提高性能

当需要添加多个DOM节点时,使用文档片段可以减少重绘和回流。

const fragment = document.createDocumentFragment();

for (let i = 0; i < 100; i++) {
    const item = document.createElement('li');
    item.textContent = `项目 ${i}`;
    fragment.appendChild(item);
}

document.getElementById('list').appendChild(fragment);

表单元素操作

表单元素有特殊的属性和方法需要关注。

获取表单值

const input = document.querySelector('input');
console.log(input.value);

const checkbox = document.querySelector('input[type="checkbox"]');
console.log(checkbox.checked);

设置表单值

input.value = '新值';
checkbox.checked = true;

监听表单事件

js实现dom

input.addEventListener('change', function() {
    console.log('值已改变');
});

form.addEventListener('submit', function(event) {
    event.preventDefault();
    console.log('表单提交');
});

标签: jsdom
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…