1:DOM树
- 文档:一个页面就是一个文档,DOM中使用document表示
- 节点:网页中的所有内容,在文档树中都是节点(标签、属性、文本、注释等,使用node表示
- 标签节点:网页中的所有标签,通常称为元素节点,又简称为“元素”,使用element表示

2:元素
2.1:获取元素
方法 | 描述 |
---|
document.getElementById(id) | 根据ID获取 |
document.getElementsByTagName(‘标签名’) | 根据标签名获取元素 |
document.getElementsByClassName() | 根据类名获取元素 |
document.querySelector(‘选择器’) | 返回指定选择器的第一个元素对象 |
document.querySelectorAll('选择器) | 返回指定选择器的所有元素对象 |
document.body | 获取body元素 |
document.documentElement | 获取html元素 |
2.2:操作元素
2.1.1:改变元素内容
方法 | 描述 |
---|
element.innerText | 仅修改元素内容 |
element.innerHTML | 修改元素内容(包含html标签 空格、换行) |
2.1.2:改变元素样式
方法 | 描述 |
---|
element.style | 行内样式 |
element.className | 类名样式 |
3:事件
3.1:注册事件
注册事件两种方式:传统注册事件和监听注册事件
监听注册事件:同一个元素 同一个事件可以添加多个侦听器
<script>
var btns = document.querySelectorAll('button');
btns[0].onclick = function() {
alert('hi');
}
btns[0].onclick = function() {
alert('hao a u');
}
btns[1].addEventListener('click', function() {
alert(22);
})
btns[1].addEventListener('click', function() {
alert(33);
})
btns[2].attachEvent('onclick', function() {
alert(11);
})
</script>
3.2:删除事件

<script>
var divs = document.querySelectorAll('div');
divs[0].onclick = function() {
alert(11);
divs[0].onclick = null;
}
divs[1].addEventListener('click', fn)
function fn() {
alert(22);
divs[1].removeEventListener('click', fn);
}
divs[2].attachEvent('onclick', fn1);
function fn1() {
alert(33);
divs[2].detachEvent('onclick', fn1);
}
</script>
3.3:DOM事件流
事件的执行顺序



事件冒泡
<script>
var son = document.querySelector('.son');
son.addEventListener('click', function() {
alert('son');
}, false);
var father = document.querySelector('.father');
father.addEventListener('click', function() {
alert('father');
}, false);
document.addEventListener('click', function() {
alert('document');
})
</script>
3.4:事件对象
事件对象:事件发生后,跟事件相关的一系列信息数据的集合都放到这个对象里面.


3.5:常用点击事件

<body>
<div>123</div>
<script>
var div = document.querySelector('div');
div.onclick = function() {
console.log('我被选中了');
}
</script>
</body>
4:属性操作
4.1:获取属性值
方法 | 描述 |
---|
element.属性 | 获取内置属性值 |
element.getAttribute(‘属性’) | 获取自定义属性值 |
4.2:设置属性值
方法 | 描述 |
---|
element.属性= ‘值’ | 设置内置属性值 |
element.setAttribute(‘属性’, ‘值’) | 设置自定义属性值 |
4.3:移除属性
方法 | 描述 |
---|
element.removeAttribute(属性) | 移除属性 |
4.4:H5自定义属性

<div getTime="20" data-index="2" data-list-name="andy"></div>
<script>
var div = document.querySelector('div');
console.log(div.getAttribute('getTime'));
div.setAttribute('data-time', 20);
console.log(div.getAttribute('data-index'));
console.log(div.getAttribute('data-list-name'));
console.log(div.dataset);
console.log(div.dataset.index);
console.log(div.dataset['index']);
console.log(div.dataset.listName);
console.log(div.dataset['listName']);
</script>
4:节点操作
节点:nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)三个基本属性。
方法 | 描述 |
---|
node.parentNode | 父级节点 |
node.children | 子节点 |
node.parentNode | 父级节点 |
document.createElement(‘li’); | 创建节点 |
node.appendChild | 添加节点 |
node.removeChild | 删除节点 |
ode.cloneNode(true); | 复制节点 |
在这里插入代码片<script>
var li = document.createElement('li');
var ul = document.querySelector('ul');
ul.appendChild(li);
</script>