当前位置:首页 > JavaScript

js实现dom

2026-03-14 19:44:30JavaScript

使用原生JavaScript操作DOM

原生JavaScript提供了多种方法来操作DOM(文档对象模型)。这些方法允许动态修改网页内容、结构和样式。

创建元素

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

选择元素

// 通过ID选择
const elementById = document.getElementById('myId');

// 通过类名选择
const elementsByClass = document.getElementsByClassName('myClass');

// 通过标签名选择
const elementsByTag = document.getElementsByTagName('div');

// 使用CSS选择器
const element = document.querySelector('#container .item');
const elements = document.querySelectorAll('.items');

修改元素内容

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

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

添加和移除事件监听器

事件处理是DOM操作的重要组成部分,允许对用户交互做出响应。

添加事件监听

const button = document.querySelector('button');
button.addEventListener('click', function() {
    console.log('按钮被点击');
});

移除事件监听

function handleClick() {
    console.log('点击处理');
}
button.addEventListener('click', handleClick);

// 稍后移除
button.removeEventListener('click', handleClick);

修改元素样式和类

动态修改元素外观可以通过直接操作style属性或类名实现。

修改内联样式

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

操作类名

js实现dom

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

// 移除类
element.classList.remove('inactive');

// 切换类
element.classList.toggle('visible');

// 检查类是否存在
if (element.classList.contains('hidden')) {
    // 执行操作
}

遍历和操作DOM树

了解如何遍历DOM树对于复杂操作非常重要。

父节点和子节点

// 获取父节点
const parent = element.parentNode;

// 获取子节点
const firstChild = parent.firstChild;
const lastChild = parent.lastChild;
const children = parent.children;

兄弟节点

const nextSibling = element.nextSibling;
const previousSibling = element.previousSibling;

动态修改DOM结构

除了创建新元素,还可以修改现有DOM结构。

插入元素

// 在参考节点前插入
parent.insertBefore(newElement, referenceElement);

// 在末尾追加
parent.appendChild(newElement);

替换元素

js实现dom

parent.replaceChild(newElement, oldElement);

移除元素

parent.removeChild(childElement);

// 现代方法
childElement.remove();

使用文档片段提高性能

当需要添加多个DOM节点时,使用文档片段可以减少重绘和回流。

const fragment = document.createDocumentFragment();

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

document.getElementById('list').appendChild(fragment);

表单元素操作

表单元素有特殊的属性和方法需要关注。

获取表单值

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

const checkbox = document.querySelector('input[type="checkbox"]');
console.log(checkbox.checked);

设置表单值

input.value = '新值';
checkbox.checked = true;

监听表单事件

input.addEventListener('change', function() {
    console.log('值已改变');
});

form.addEventListener('submit', function(event) {
    event.preventDefault();
    console.log('表单提交');
});

标签: jsdom
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现变形

js实现变形

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

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…