1.Dom元素的获取
- document.getElementById():通过id获取一个Dom元素
- document.getElementsByClassName():通过class名字获取一个或多个Dom元素(伪数组)
- document.getElementsByTagName():通过标签名字获取一个或多个Dom元素(伪数组)
- document.querySelector():获取指定 CSS 选择器的一个元素
- document.querySelectorAll():获取指定 CSS 选择器的多个元素(伪数组)
ES6选择器与其他选中器的区别:
document.getElementsByTagName()和document.getElementsByClassName()获取到的都是动态列表
document.querySelectorAll()获取到的是静态列表,Dom结构发生变化要重新获取,不然会出问题
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
- 4
document.getElementsByTagName()和document.getElementsByClassName()获取到的是 HTMLCollection,不能使用foreach()遍历
document.querySelectorAll()获取到的NodeList,可以使用foreach()遍历
Test
- 1
- 2
- 3
- 4
2.Dom元素节点类型
Dom节点类型分3类:元素节点,属性节点,文本节点
每种节点都有3种属性 nodeName,nodeType,nodevalue
Test
*{padding: 0;margin: 0;}
我是谁
3.获取Dom元素的子元素,父元素,兄弟元素
通过children属性可以获取当前Dom元素的子元素
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
获取当前元素的父元素
parentElement/parentNode这两个属性都可以
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
获取当前元素的兄弟元素
previousElementSibling属性:上一个兄弟元素
nextElementSibling属性:下一个兄弟元素
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
注意:
children与childNodes,前者只包含元素节点,而后者为元素节点+文本节点(回车换行也算是文本节点)
而previousElementSibling与previousSibling,nextElementSibling与nextSibling也一个道理
firstChild和lastChild:firstChild等价于childNodes[0],lastChild相当于childNodes的最后一个元素
4.DOM元素的添加与移除
添加子元素
appendChild():将目标元素作为子元素添加到当前元素的最后面
insertBefore():将目标元素作为子元素添加到当前元素中,位置可以自由选择
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
运行结果
- 1
- life
- 2
- 3
- 4
删除子元素和替换子元素
removeChild():删除子元素
replaceChild():替换子元素
语法:parent.removeChild(child)
语法:parent.removeChild(替换的元素, 被替换的元素)
Test
*{padding: 0;margin: 0;}
- 1
- 2
- 3
运行结果:
- 1
- replace li tag
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



