当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。DOM是用来呈现以及与任意HTML或XML文档交互的API。
开发网页内容特效和实现用户交互
浏览器根据html标签生成的JS对象
在html里叫标签,js获取过来后,在dom中叫对dom对象
DOM的核心思想
把网页内容当做对象来处理
document
对象
document
里document.querySelector('css选择器')
可以直接修改元素。
示例:
const box = document.querySelector('.box')
console.log(box)
const nav = document.querySelector('#nav')
console.log(nav)
document.querySelectorAll('css选择器')
因为得到的是一个伪数组,不可以直接修改元素,要通过遍历的方式修改。
示例:
const lis = document.querySelectorAll('ul li')
console.log(lis)
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
根据id获取一个元素
document.getElementById('nav')
根据标签获取一类元素
document.getElementsByTagName('div')
根据类名获取元素
document.getElementsByClassName('www')
修改元素内容。
const box = document.querySelector('.box')
console.log(box.innerText)//获取文字内容
box.innerText = 'ggg'
console.log(box.innerText)
const box = document.querySelector('.box')
console.log(box.innerHTML)//获取文字内容
box.innerHTML = '<strong>ggg</strong>'
console.log(box.innerHTML)
对象.属性=值
有则改,无则增。示例:
const img = document.querySelector('img')
img.src = '/images/huajiao.jpg'
元素.className = 'active'
const div = document.querySelector('div')
div.className = 'box'
div {
width: 300px;
height: 303px;
}
.box {
width: 300px;
height: 100px;
background-color: skyblue;
}
<div></div>
注意:直接使用会覆盖掉之前的类名:
<div class="nav">zhezhe</div>
div {
width: 300px;
height: 303px;
}
.box {
width: 300px;
height: 100px;
background-color: skyblue;
}
.nav {
color: red;
}
const div = document.querySelector('div')
div.className = 'box'
修改为以下即可:
const div = document.querySelector('div')
div.className = 'nav box'
增加类:
box.classList.add('active')
.box {
width: 300px;
height: 100px;
color: aqua;
}
.active {
color: plum;
background-color: aquamarine;
}
<div class="box">zhezhe</div>
const box = document.querySelector('.box')
box.classList.add('active')
删除类:
box.classList.remove('box')
切换类(有则删除,无则增加):
box.classList.toggle('active')
注意:不加类前的.