DOM操作
节点操作
- 节点选择
// 现代选择器
const element = document.querySelector('.class');
const elements = document.querySelectorAll('.class');
// 传统选择器
const elementById = document.getElementById('id');
const elementsByClass = document.getElementsByClassName('class');
- 节点创建与修改
// 创建元素
const div = document.createElement('div');
div.className = 'new-class';
div.textContent = '新元素';
// 插入元素
parentElement.appendChild(div);
parentElement.insertBefore(div, referenceElement);
// 删除元素
element.remove();
parentElement.removeChild(element);
属性操作
// 获取属性
element.getAttribute('class');
element.className;
element.classList;
// 设置属性
element.setAttribute('class', 'new-class');
element.className = 'new-class';
element.classList.add('new-class');
// 样式操作
element.style.color = 'red';
element.style.backgroundColor = '#fff';
事件处理
// 事件监听
element.addEventListener('click', (e) => {
console.log('点击事件');
});
// 事件委托
parentElement.addEventListener('click', (e) => {
if (e.target.matches('.child-class')) {
console.log('子元素点击事件');
}
});
DOM性能优化
- 批量操作
- 文档片段
- 虚拟列表
- 防抖和节流