原生js完成发布评论功能

效果图

 搭建基础结构

html

 <div class="box">
    <textarea name="" id="" cols="30" rows="5"></textarea>
    <button>发布</button>
    <ul></ul>
   </div>

css

 .box {
            margin: 100px 500px;
            position: relative;
        }
        textarea {
           outline: none;
           text-indent: 1em;
        }
        ul {
           position: absolute;
           top: 70px;
           left: -40px;
        }
        li {
            margin-top: 5px;
            width: 300px;
            border-bottom: 1px solid black;
            list-style: none;
        }
        li a {
            font-size: 10px;
            float: right;
            text-decoration: none;
            color: #ccc;
        }

js

获取对象

const text=document.querySelector('textarea')
        const button =document.querySelector('button')
        const ul =document.querySelector('ul')

给发布按钮绑定点击事件

首先判断文本框内是否有内容if(){} else(){},如果没有,弹出提示框,并结束函数

如果有内容,用document.createElement()动态创建元素li,

将文本框内的内容赋值给创建的li,创建a标签,innerHTML可以识别标签

在点击清空文本框中的内容

             button.addEventListener('click',function() {
            
            if(text.value==='') {
                alert('请输入')
                return false
            } else {
                // 创建元素
                var li=document.createElement('li')

                li.innerHTML=text.value+'<a href="javascript:;">删除</a>'

                text.value=''
            }

再将li添加进ul

用inserBefore(),将li放在最前面

 // 添加元素
            ul.insertBefore(li,ul.children[0])

点击删除

用querySelectorAll获取全部的a

遍历a

用removeChild()删除子节点

this.parentNode指的是当前被点击a的父元素li

          var as=document.querySelectorAll('a')
            for(let i=0;i<as.length;i++) {
                as[i].addEventListener('click',function(){
                    // 删除节点
                    ul.removeChild(this.parentNode)
                })
            }

如有错误,积极接受指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软工不秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值