DOM
获取元素样式
<div class="item box">我是一个具有两个类名的 DIV</div>
var oDiv = document.querySelector('div')
1. 获取语法 元素.className
console.log(oDiv.className)
2. 设置语法 元素.className = '新的类名'
oDiv.className = oDiv.className + ' new_box'
3. 第二种获取语法
console.log(oDiv.classList)
4. 第二种设置语法
oDiv.classList.add('new_box')
5. 删除语法
oDiv.classList.remove('box')
获取元素类名
语法: 元素.style.某个CSS属性----> 只能获取到行内样式
1. 获取元素样式
console.log(元素.style.width)
console.log(元素.style.height)
console.log(oBox.style.background-color)
console.log(oBox.style['background-color'])
console.log(oBox.style.backgroundColor)
2. 设置元素样式---> 只能设置给行内
元素.style.backgroundColor = 'blue'
获取元素样式 (非行内)注意: 这种方式获取到的是只读的属性
只读: 只能获取到, 但是不允许修改
console.log(window.getComputedStyle(元素).width)
console.log(window.getComputedStyle(元素).backgroundColor)
查看密码案例
密码:<input type="password">
<button>查看密码</button>
<script>
var btn = document.getElementsByTagName('button')[0]
var int = document.getElementsByTagName('input') [0]
btn.onclick = function (){
//获取int的属性名的值来判断
if(int.type == 'password'){
int.type = 'text'
}else if(int.type == 'text'){
int.type = 'password'
}
}
</script>
全选案例
全选<input type="checkbox" class="iptall">
<hr>
1<input type="checkbox" class="item"><br>
2<input type="checkbox" class="item"><br>
3<input type="checkbox" class="item"><br>
4<input type="checkbox" class="item">
<script>
var iptall = document.getElementsByClassName('iptall')[0]
var items = [...document.querySelectorAll('.item')]
iptall.onclick = function(){
items.forEach(function(item){
item.checked = iptall.checked
})
}
items.forEach(function(item){
item.onclick = function(){
iptall.checked = items.every(function(item){
return item.checked
})
}
})
</script>
DOM 节点
<div class="box">
<p>哈哈哈</p>
<span>yyyyyyyyyy</span>
</div>
1. 获取元素的子节点
var oDiv = document.querySelector('div')
console.log(oDiv.children)
console.log(oDiv.childNodes)
获取所有的 子级节点(会把换行识别为一个文本, 标签当成 元素节点)
div 结束标签的位置开始, 到p标签开始位置的换行会被识别为一个 text
p 标签会被识别为一个元素节点
p 结束标签到span开始标签前的换行会被识别为一个text
span 标签会被是被识别为一个 元素节点
span 标签结束位置到div 结束标签前的换行会被识别为一个text
2.获取元素的 第一个 子节点
console.log(oDiv.firstChild)
console.log(oDiv.firstElementChild)
3.获取元素最后一个子节点
console.log(oDiv.lastChild)
console.log(oDiv.lastElementChild)
3.获取元素的兄弟节点
<ul>
<li id="a">1</li>
<li id="b">2</li>
<li id="c">3</li>
</ul>
<script>
var oli = document.getElementById('b')
console.log(oli.nextSibling)
console.log(oli.nextElementSibling)
console.log(oli.previousSibling)
console.log(oli.previousElementSibling)
var oli = document.getElementById('b')
console.log(oli.parentNode)
</script>
节点分类
<ul x="100" y="200">
<li>我是ul的子级</li>
</ul>
<script>
var oUl = document.querySelector('ul')
var ele = oUl.firstElementChild
var text = oUl.firstChild
var attr = oUl.attributes[0]
console.log(ele.nodeType)
console.log(text.nodeType)
console.log(attr.nodeType)
console.log(ele.nodeName)
console.log(text.nodeName)
console.log(attr.nodeName)
console.log(ele.nodeValue)
console.log(text.nodeValue)
console.log(attr.nodeValue)
</script>