当前位置:首页 > JavaScript

js dom实现

2026-02-01 00:47:12JavaScript

DOM 操作基础

DOM(Document Object Model)是浏览器提供的 JavaScript 接口,用于操作网页内容。以下是核心方法:

获取元素

// 通过 ID
const el = document.getElementById('id');

// 通过类名(返回 HTMLCollection)
const els = document.getElementsByClassName('class');

// 通过标签名(返回 HTMLCollection)
const tags = document.getElementsByTagName('div');

// 通过 CSS 选择器(返回第一个匹配元素)
const q = document.querySelector('.class');

// 通过 CSS 选择器(返回 NodeList)
const qAll = document.querySelectorAll('div');

修改内容

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

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

// 修改属性
el.setAttribute('data-id', '123');
el.getAttribute('data-id');
el.removeAttribute('data-id');

动态节点操作

创建/添加节点

// 创建新元素
const newEl = document.createElement('div');

// 添加到父元素末尾
parentEl.appendChild(newEl);

// 插入到指定位置
parentEl.insertBefore(newEl, referenceEl);

删除/替换节点

// 删除节点
parentEl.removeChild(childEl);

// 替换节点
parentEl.replaceChild(newEl, oldEl);

样式与类操作

直接修改样式

el.style.color = 'red';
el.style.backgroundColor = '#fff';

类名操作

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

// 移除类
el.classList.remove('active');

// 切换类
el.classList.toggle('active');

// 检查类
const hasClass = el.classList.contains('active');

事件处理

添加事件监听

el.addEventListener('click', (event) => {
  console.log('元素被点击', event.target);
});

移除事件监听

function handleClick() { /*...*/ }
el.addEventListener('click', handleClick);
el.removeEventListener('click', handleClick);

表单操作

获取表单值

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

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

监听表单事件

formEl.addEventListener('submit', (e) => {
  e.preventDefault(); // 阻止默认提交
  // 处理表单数据
});

性能优化技巧

批量 DOM 操作时使用 DocumentFragment:

const fragment = document.createDocumentFragment();
for (let i = 0; i < 100; i++) {
  const el = document.createElement('div');
  fragment.appendChild(el);
}
document.body.appendChild(fragment);

避免频繁重排:

js dom实现

// 读写分离(先读后写)
const width = el.offsetWidth;
el.style.width = width + 10 + 'px';

标签: jsdom
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…