利用节点操作完成简易的留言板功能

效果如下:

(真可爱啊)


实现原理:

每点击一次提交按钮,就创建一个 li 标签(本身 ul 里没有 li 标签,ul 在 textarea 下方)然后使用 innerHTML 将textarea 的 value 值传给 li 标签的内容。删除用到了 removeChild


JS 实现代码:

 <script>
        var btn=document.querySelector('button');
        var text=document.querySelector('textarea');
        var ul=document.querySelector('ul');
        btn.onclick=function(){
            if(text.value==''){
                alert('不能提交空留言');
            }else{
            var lis=document.createElement('li');
            lis.innerHTML=text.value + "<button class='del'>删 除</button>";
            ul.insertBefore(lis,ul.children[0]);
            text.value='';
           //删除留言
           var del=document.querySelectorAll('.del');
           for(var i=0;i<del.length;i++){
                del[i].onclick=function(){
                    ul.removeChild(this.parentNode);
                }
              }
            }
        }
    </script>

完整代码:

  <style>
        .box{
            box-sizing: border-box;
            width: 500px;
            height: 1200px;
            margin: 100px auto;
        }

        textarea{
            box-sizing: border-box;
            padding: 10px;
           width: 600px;
           height: 145px;
           background-color: rgb(236, 235, 235);
           font-size: 20px;
           outline: none;
           border: 2px solid;
           -webkit-border-radius:30px;
            -moz-border-radius:30px;
        }

        .sub{
            position: absolute;
            left: 965px;
            top: 257px;
            width: 100px;
            height: 50px;
             background-color: rgb(253, 236, 78); 
             font-weight: bold;
            /* border: 1px solid; */
            font-size: 22px; 
            -webkit-border-radius:30px;
            -moz-border-radius:30px;
        }

        .sub:hover{
            background-color: rgb(248, 100, 100);
            color: rgb(255, 255, 255);
        }

        ul{
            position: absolute;
            left: 435px;
            top: 241px;
            width: 460px;
            height: 10px;
        }

        li{
            padding-left: 10px;
            line-height: 50px;
            -webkit-border-radius:30px;
            -moz-border-radius:30px;
          width: 460px;
          height: 50px;
          background-color: rgb(121, 190, 255);
          border-bottom: 2px solid;
          margin-bottom: 10px;
        }

        .del{
           margin-top: 13px;
           margin-right: 10px;
            float: right;
            width: 60px;
            height: 25px;
            -webkit-border-radius:30px;
            -moz-border-radius:30px;
            background-color: rgb(248, 100, 100);
            color: rgb(255, 255, 255);
            border: 1px solid;
            border-color: black;
            font-weight: bold;
        }

         .del:hover{
             background-color: rgb(209, 29, 29);
         }
    </style>
</head>
<body>
    <div class="box">
        <textarea name="" id="" cols="30" rows="10" placeholder="请输入留言"></textarea>
        <br>
        <button class="sub">提 交</button>
        <ul>
        </ul>
    </div>
    <script>
        var btn=document.querySelector('button');
        var text=document.querySelector('textarea');
        var ul=document.querySelector('ul');
        btn.onclick=function(){
            if(text.value==''){
                alert('不能提交空留言');
            }else{
            var lis=document.createElement('li');
            lis.innerHTML=text.value + "<button class='del'>删 除</button>";
            ul.insertBefore(lis,ul.children[0]);
            text.value='';
           //删除留言
           var del=document.querySelectorAll('.del');
           for(var i=0;i<del.length;i++){
                del[i].onclick=function(){
                    ul.removeChild(this.parentNode);
                }
              }
            }
        }
    </script>
</body>

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡卡西最近怎么样

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

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

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

打赏作者

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

抵扣说明:

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

余额充值