当前位置:首页 > JavaScript

js实现dom

2026-04-06 13:29:34JavaScript

使用原生 JavaScript 操作 DOM

创建元素并添加到 DOM 中:

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

通过 ID 获取元素:

const elementById = document.getElementById('myElement');

通过类名获取元素:

const elementsByClass = document.getElementsByClassName('myClass');

通过标签名获取元素:

const elementsByTag = document.getElementsByTagName('p');

通过选择器获取元素:

const element = document.querySelector('#myElement .myClass');
const elements = document.querySelectorAll('.myClass');

修改元素内容:

elementById.innerHTML = '<strong>修改后的内容</strong>';
elementById.textContent = '纯文本内容';

修改元素样式:

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

添加和移除类:

elementById.classList.add('new-class');
elementById.classList.remove('old-class');
elementById.classList.toggle('active');

事件监听:

js实现dom

elementById.addEventListener('click', function(event) {
    console.log('元素被点击了', event);
});

移除元素:

const elementToRemove = document.getElementById('removeMe');
elementToRemove.parentNode.removeChild(elementToRemove);

动态创建和插入 DOM 结构

创建复杂 DOM 结构:

const container = document.createElement('div');
container.className = 'container';

const header = document.createElement('h1');
header.textContent = '动态创建的标题';

const paragraph = document.createElement('p');
paragraph.textContent = '这是动态创建的段落内容。';

container.appendChild(header);
container.appendChild(paragraph);
document.body.appendChild(container);

DOM 属性操作

获取和设置属性:

const link = document.querySelector('a');
const href = link.getAttribute('href');
link.setAttribute('target', '_blank');

数据集操作:

elementById.dataset.userId = '12345';
const userId = elementById.dataset.userId;

表单元素操作

获取表单值:

js实现dom

const input = document.querySelector('input[type="text"]');
const value = input.value;

设置表单值:

input.value = '新的输入值';

表单提交处理:

const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
    event.preventDefault();
    const formData = new FormData(form);
    // 处理表单数据
});

动画效果

使用 JavaScript 实现简单动画:

function animate(element) {
    let pos = 0;
    const interval = setInterval(() => {
        if (pos >= 300) {
            clearInterval(interval);
        } else {
            pos++;
            element.style.left = pos + 'px';
        }
    }, 10);
}

性能优化建议

批量 DOM 操作:

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

避免频繁重排:

// 先读取,后写入
const width = element.offsetWidth;
element.style.width = (width + 100) + 'px';

标签: jsdom
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(f…

使用js实现

使用js实现

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

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…