1. innerHTML 不仅能设置标签内容,还能设置标签
<button type="button">按钮</button>
<ul>
</ul>
let btn = document.querySelector("button")
let ul = document.querySelector("ul")
btn.onclick = function(){
ul.innerHTML=`
<li>苹果</li>
<li>香蕉</li>
<li>橘子</li>`
}
2.操纵DOM树的常见函数
案例1:点击按钮一次,创建一个li列表;点击一个列表,将其删除
<input />
<button type="button">按钮</button>
<ul class="my-list">
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
let btn = document.querySelector("button")
let ul = document.querySelector("ul")
let inp = document.querySelector("input")
let list = document.querySelectorAll(".my-list li")
btn.onclick = function(){
let li = document.createElement("li")
let txt = document.createTextNode(inp.value)
ul.appendChild(li)
li.appendChild(txt)
}
for(let i in list){
list[i].onclick = function(){
ul.removeChild(this)
}
}
3.事件对象 JS规定事件响应函数的形参为事件对象,一般取名为 e或event
let box = document.querySelector(".box")
box.onclick = function(e){
console.log(e.clientX+","+e.clientY);
console.log(e);
}
案例2: 完成图片放大镜功能
.img-list img{
width: 10rem;
height: 8em;
}
.big-img img{
width: 20rem;
height: 16rem;
}
.big-img{
position: absolute;
}
<div class="img-list">
<img src="img/1.jpg" >
<img src="img/2.png" >
<img src="img/3.png" >
</div>
<div class="big-img">
</div>
let imgList = document.querySelectorAll(".img-list img")
let bigImg = document.querySelector(".big-img")
let picList = document.querySelector(".img-list")
for (let i in imgList) {
imgList[i].onmouseenter = function(){
bigImg.innerHTML = `<img src="${this.src}"></img>`
}
imgList[i].onmouseleave = function(){
bigImg.innerHTML = ``
}
}
picList.onmousemove = function(e){
let X = e.clientX
let Y = e.clientY
bigImg.style.top = Y+10+"px"
bigImg.style.left = X+10+"px"
}