Es6面向对象实现TEB切换栏有添加修改删除功能

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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值