操作属性
- 概念:我们获取到元素以后,可以直接操作 DOM 的属性,然后直接把效果展示在页面
1. innerHTML
- 获取元素内部的 HTML 结构
- 我们也可以直接给这个属性重新赋值,达到修改页面的效果
2. innerText
- 获取元素内部的 文本(只能获取到文本,获取不到html标签)
- 我们也可以直接给这个属性重新赋值,达到修改页面的效果
这里先写一段标签,方便后续获取
<div id="box">
<p>
<span>我是span</span>
</p>
</div>
var oDiv = document.querySelector('#box')
console.log(oDiv)
console.log(oDiv.innerHTML)
oDiv.innerHTML = '<p><span>这个文本是通过JS来设置的</span></p>'
console.log(oDiv.innerText)
oDiv.innerText = '这个文本是通过JS来设置的'
3.操作元素属性
<div class="box" a="100"></div>
3.1 获取元素的某些属性
- 语法: 元素.getAttribute('要查询的属性名')
- 返回值:查询到属性时返回对应的属性值,没有查询到时直接返回 null
3.2 修改元素的某些属性
- 语法: 元素.setAttribute('对应的属性名','对应的属性值')
- 注意: 如果元素没有对应的属性名,那么相当于是新增一个属性
3.3 删除元素的某些属性
- 语法: 元素.removeAttribute('要删除的属性名')
var oDiv = document.querySelector('.box')
console.log(oDiv)
console.log(oDiv.getAttribute('a'))
console.log(oDiv.getAttribute('class'))
console.log(oDiv.getAttribute('b'))
oDiv.setAttribute('a','888')
oDiv.setAttribute('b','qwer')
oDiv.setAttribute('class','box2')
console.log(oDiv.getAttribute('a'))
console.log(oDiv.getAttribute('b'))
console.log(oDiv.getAttribute('class'))
oDiv.removeAttribute('class')
oDiv.removeAttribute('a')
3.4标签本身自带的属性,比如 id src type 之类的属性
- 获取: 元素.属性名
- 设置: 元素.属性名 = '属性值'
<div id="box">div 标签</div>
var box = document.querySelector('div')
box.id = 'content'
4. h5自定义属性的增(改)删查
<div data-a="100"></div>
- data- 表示该属性是一个自定义属性
- data- 后边的内容才是属性名,当前案例中属性名为 a,不是 data-a
- = 后边的内容是属性值
- 每一个 元素/DOM节点 天生自带一个属性叫做 dataset,是一个类似对象的数据结构
var oDiv = document.querySelector('div')
console.log(oDiv.dataset.a)
oDiv.dataset.age = 18
oDiv.dataset.a = 888
delete oDiv.dataset.a
5. 获取元素行内样式
<div class="box" style="background-color: blue;width="100px";height="100px" "></div>
- 语法:元素.style.某个属性
- 注意:
- 我们也可以给这个语法重新赋值,达到修改元素样式的效果(修改的是行内样式)
- 这种语法获取到的元素样式,只能获取到行内样式
var oDiv = document.querySelector('.box')
console.log(oDiv.style.width)
console.log(oDiv.style.height)
console.log(oDiv.style['backgroundColor'])
console.log(oDiv.style.backgroundColor)
oDiv.style.width = 666 + 'px'
oDiv.style.backgroundColor = 'pink'
6. 获取元素 非行内样式
- 语法: window.getComputedStyle(元素).要查询的css属性
- 注意: 这种方式获取到的属性 是只读的,不允许修改
console.log(window.getComputedStyle(oDiv).width)
console.log(window.getComputedStyle(oDiv).backgroundColor)
7. 专门用来操作元素的 类名
7.1 className
- 语法:元素.className
- 我们也可以给她重新赋值,达到修改元素的类名
oDiv.className = 'box1'
console.log(oDiv.className)
7.2 classList
<div class="box new_box"></div>
var oDiv = document.querySelector('.box')
console.log(oDiv.classList)
oDiv.classList.add('qwer')
oDiv.classList.remove('new_box')