当前位置:首页 > 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实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现vue路由

js实现vue路由

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

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…