当前位置:首页 > 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
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…