014-DOM操作

Apr 14, 2025 1:23 AM
Apr 14, 2025 3:59 AM

1. 节点类型

节点类型 nodeType值
元素节点 1
属性节点 2
文本节点 3

2. 获取元素

方法 返回值类型(重要)
document.getElementById() Element 或 null
document.getElementsByTagName() HTMLCollection(类数组)
document.getElementsByClassName() HTMLCollection(类数组)
document.getElementsByName() HTMLCollection(类数组) 表单元素专用
document.querySelector() Element 或 null
document.querySelectorAll() NodeList(类数组,可遍历)

3. 增删改元素

方法 备注
document.createElement() 创建元素
document.create.TextNode() 创建文本节点
A.appendChild(B) 添加子元素(成为最后一个子元素)
A.insertBefore(B,ref) 添加子元素到ref之前
A.removeChild(B) 删除子元素
A.cloneNode(true/false) 克隆节点,默认false浅克隆,true为深克隆
A.replaceChild(new,old) 替换元素

4. HTML属性操作

方法 作用
Node.getAttribute() 等价于Node.attr 获取元素的属性值,
获取class应该写 .className.
获取文本框,多行文本框,单选框,复选框,下拉框的值应该写.value
Node.setAttribute() 等价于
Node.attr = "xx"
设置元素的属性值
Node.removeAttribute("xx") 删除元素属性
Node.hasAttribute("xx") 判断是否有xx属性,返回Boolean

5. CSS属性操作

方法 作用
getComputedStyle(Node).attr 获取元素的css属性名attr的属性值,attr采用小驼峰命名法
Node.style.attr = "值" 等价于
Node.style["attr"]
设置元素的style属性,添加的是行内样式
Node.style.cssText = "值" 设置元素的style属性,添加的也是行内样式区别是这里的值直接写css文本,例如:background-color:red

6. 其他拓展

document.getElementById('list').addEventListener('click', (e) => {
  const li = e.target.closest('li');
  if (li) {
    console.log('点击的是 li 或它的子元素');
  }
});