HTML部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 800px;
height: 600px;
border: solid 1px;
margin: 0 auto;
}
.tobu {
width: 100%;
overflow: hidden;
background-color: brown;
}
ul li {
list-style: none;
float: left;
}
li {
width: 60px;
background-color: chartreuse;
}
p {
display: none;
}
.btn {
float: right;
}
input {
width: 30px;
}
</style>
</head>
<body>
<div class="box">
<div class="tobu">
<ul>
<li>
<span>测试1</span>
<button>删除</button>
</li>
<li>
<span>测试1</span>
<button>删除</button>
</li>
<li>
<span>测试1</span>
<button>删除</button>
</li>
</ul>
<button class="btn">添加</button>
</div>
<div class="tobu2">
<p>我是第一个盒子</p>
<p>我是第二个盒子</p>
<p>我是第三个盒子</p>
</div>
</div>
</body>
<script src="Teb.js"></script>
</html>
JS部分
var tach;
class TEB {
constructor(clss) {
tach = this;
this.main = document.querySelector(clss);
this.btn = this.main.querySelector(".btn")
this.ul = this.main.querySelector('.tobu ul')
this.PP = this.main.querySelector('.box .tobu2')
this.getqeury();
this.shij()
}
//更新获取元素
getqeury() {
this.lis = this.main.querySelectorAll('li');
this.P = this.main.querySelectorAll('p');
this.btnn = this.main.querySelectorAll("ul li button");
this.span = this.main.querySelectorAll("ul li span")
}
//添加事件
shij() {
tach.getqeury();
for (let i = 0; i < this.lis.length; i++) {
this.lis[i].index = i;
this.lis[i].onclick = this.qiehuan;
tach.btnn[i].onclick = this.shanchu;
this.span[i].ondblclick = this.xiugai;
this.P[i].ondblclick = this.xiugai;
}
tach.btn.onclick = this.tianjia;
}
//切换功能
qiehuan() {
tach.forr();
tach.lis[this.index].style.backgroundColor = "red";
tach.P[this.index].style.display = "block";
}
//去异
forr() {
for (let i = 0; i < this.lis.length; i++) {
tach.P[i].style.display = "";
tach.lis[i].style.backgroundColor = "";
}
}
//添加
tianjia() {
tach.qiehuan
var li = "<li><span>测试</span><button>删除</button></li>";
var ps = "<p>我是新加的盒子盒子</p>";
tach.ul.insertAdjacentHTML('beforeend', li)
tach.PP.insertAdjacentHTML('beforeend', ps)
tach.shij();
}
//删除
shanchu() {
tach.shij();
tach.forr()
var index = this.parentNode.index;
tach.lis[index].remove();
tach.P[index].remove();
index--;
//tach.lis[index].onclick = this.shij();
}
//修改
xiugai() {
// window.Geolocation ? window.Geolocation().removeAllRanges() : document.getSelection.empty();
var ht = this.innerHTML;
this.innerHTML = '<input type="text">';
var input = this.children[0];
input.value = ht;
input.select();
input.onblur = function() {
this.parentNode.innerHTML = this.value;
};
input.onkeyup = function(e) {
if (e.keyCode == 13) {
this.blur();
}
}
}
}
new TEB(".box")