原生JS使用事件委托实现留言板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言框demo</title>
</head>
<body>
<input type="text" id="ipt">
<button id="btn">ADD</button>
<ul id="list">

</ul>
<script>

    // 留言框
    let ipt = document.querySelector('#ipt');
    let btn = document.querySelector('#btn');
    let list = document.querySelectorAll('#list');
    let ul = document.querySelector('ul');
    let message;
    function fn() {
            let newLi = `<li>
            <span style="display: inline-block;width: 218px">${message}</span>
            <button id="del">DELETE</button>
            </li>`
            ul.innerHTML += newLi;
            let del = document.querySelectorAll('#del')
            ipt.value = '';
    }
    // function send() {
    //     // 1、获取文本框内容 2、创建li放进ul中
    //     let message = txt.value; //文本框内容
    //     if (message != "") {
    //         //文本框内容输入不为空的时候发送有效
    //         let newmessage = document.createElement("li") //创建一个li元素节点
    //         list.appendChild(newmessage) //在ul末尾添加li
    //         newmessage.innerText = message //文本框中的内容写入li中
    //         newmessage.className = "mine" //为元素加入类名
    //         txt.value = '' //清空文本框
    //         // 滚动到可视区域
    //         newmessage.scrollIntoView()
    //
    //     } else {
    //         alert("不能发送空消息")
    //     }
    //
    // }

    ipt.onkeydown = ((a) => {
        btn.onclick = (() => {
            console.log('12333')
            message = ipt.value;
                if (message != '') {
                    fn()
                }
        })
        if (a.keyCode == 13) {
            message = ipt.value;
                if (message != '') {
                    fn()
                }
        }
    })
    // 事件源e.target 事件委托的好处是减少内存消耗 提高性能
    ul.onclick = ((e) => {
        console.log('123')
        console.log(e.target)
        console.log(e.target.tagName)
        // let BUTTON = e.target.tagName;
        if (e.target.tagName == 'BUTTON') {
            e.target.parentNode.remove();
        }
    })
</script>
</body>
</html>

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值