当前位置:首页 > 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);

样式与类操作

直接修改样式

js dom实现

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);
});

移除事件监听

js dom实现

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);

避免频繁重排:

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

标签: jsdom
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现瀑布流

js实现瀑布流

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

js类实现

js类实现

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

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的cur…