DOM常用API

DOMAPI

节点查询型api
  • document.getElementById();
// 根据id获取元素
let parent = document.getElementById('parent')
  • document.getElementByTagName();
// 根据标签名获取元素
let divs = document.getElementsByTagName('div')
  • document.getElementsByClassName();
let elements = document.getElementsByClassName('classname')
  • document.querySelector() 与 document.querySelectorAll()
// 获取第一个匹配的元素
let elements = document.querySelector('.classname') 
// 获取多个匹配的元素
let elements = document.querySelectorAll('li')
// 元素如果是类名要在前面加. 是id要在前面加#
节点关系型api

节点有三个属性:nodeType(节点类型)、nodeName(节点名称)、nodeValue(节点值)

节点关系型api拿到的节点有三种,包含元素节点:nodeType为1;属性节点:nodeType为2;文本节点:nodeType为3(包含文字、空格、换行等)

由于我们一般都是用元素节点,所以在每次操作前要判断.nodeType===1

父关系
  • element.parentNode获取元素最近的父节点(亲爹),找不到返回null
let parentNode = node.parentNode
  • element.parentElement与parentNode的区别在于,其父元素必须是一个Element,如果不是,返回null
子关系
  • element.children获取所有子元素节点
  • 实际开发中使用element.children[0]取第一个,element.children[element.children.length-1]取最后一个
  • element.childNodes获取所有子元素节点,得到的节点包含元素、文本节点等
  • element.firstChild和element.lastChild获取第一个子节点和获取最后一个子节点,得到的节点包含元素、文本节点等
兄弟关系
  • nextElementSibling下一个兄弟元素节点(IE9以上)

  • previouElementSibling上一个兄弟元素节点(IE9以上)

  • nextSibling返回当前元素的下一个兄弟节点,会包含文本等节点类型

  • previousSibling返回当一个兄弟节点,同样包含所有节点类型

节点创建型api
  • createElement:创建元素
let div = document.createElement('div')
  • cloneNode:克隆元素
// cloneNode内参数为布尔值,默认false代表浅拷贝
let parent2 = parent.cloneNode(true)
parent2.id = "parent2"
页面修改型api
增加节点
  • node.appendChild():节点的子元素末尾添加指定节点
parent.appendChild(child)   // 在 parent 元素的子元素末尾添加 child 元素。
  • node.insertBefore(新节点,指定元素):在指定元素前添加元素
删除节点
  • node.removeChild(child)删除子节点
替换节点
  • node.replaceChild(新节点, 旧节点)用于使用新节点替换旧节点
元素属性api
获取属性值
  • element.属性:获取内置属性
  • element.getAttribute(‘属性’); 获取自定义属性
设置属性值
  • element.属性=‘值’
  • element.setAttribute(‘属性’,值);

注意,class属性特殊,使用第一种方式修改时,应为div.className;使用第二种时,应为element.setAttribute(‘class’,‘值’);

移除属性值
  • element.removeAttribute(‘属性’)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的战斗鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值