美文网首页
js模拟回帖/微博评论功能案例

js模拟回帖/微博评论功能案例

作者: 冒险小A | 来源:发表于2018-07-11 19:06 被阅读0次
  • 学习目的:实现在dom上的增删操作;
  • 案例:模拟回帖/微博评论功能案例;


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>评论回复</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        #box {
            width: 800px;
            border: 1px solid #cccccc;
            margin: 100px auto;
            padding: 30px;
        }

        #my_textarea {
            width: 80%;
            height: 150px;
        }

        .box-top {
            margin-bottom: 30px;
        }

        #reply {
            margin: 0 80px;
        }

        #reply li {
            border-bottom: 1px dashed #cccccc;
            color: red;
            line-height: 44px;
        }

        #reply li a {
            float: right;
        }
    </style>
</head>
<body>
<div id="box">
    <div class="box-top">
        <label>发表评论:</label>
        <textarea id="my_textarea"></textarea>
        <button id="comment">发表</button>
    </div>
    <ul id="reply">
    </ul>
</div>
<script>
    window.onload = function () {
        //封装id获取操作
        function $(id) {
            return typeof id === "string" ? document.getElementById(id) : null;
        }

        //发表按钮点击
        $("comment").onclick = function () {
            //获取输入的内容
            var content = $("my_textarea").value;
            //判断为空
            if (content.length === 0) {
                alert("请输入评论的内容!");
                return;
            } else {
                var li = document.createElement("li");
                li.innerHTML = content + '<a href = "Javascript:;">删除</a>';//动态处理a标签
                $("reply").appendChild(li);//在ul中添加li
                //清除输入框
                $("my_textarea").value = "";
            }

            //删除操作
            //获取li中所有链接a元素
            var liList = $("reply").getElementsByTagName("a");
            //遍历拿到每个"删除"标签
            for (var i = 0; i < liList.length; i++) {
                var a = liList[i];
                a.onclick = function () {
                    //删除父元素li
                    this.parentNode.remove();
                }
            }
        }
    }
</script>
</body>
</html>

可以注意到此时删除操作是在发表操作的区域块中的


在案例过程中,我一开始把删除评论操作发表评论操作并列的放在一起,因为我觉得这是两个独立的地位相等的操作.
但是执行起来,删除操作并没有效果,原因是在发表操作区域中添加的li元素在删除区域中获取不到,评论的次数决定了删除的个数,决定了遍历数组的长度,如果在删除操作之前就结束了代码块,作用域是传不到删除操作代码块中的.

相关文章

  • js模拟回帖/微博评论功能案例

    学习目的:实现在dom上的增删操作; 案例:模拟回帖/微博评论功能案例; 可以注意到此时删除操作是在发表操作的区域块中的

  • [开源APP推荐] iWeibo – 微博软件

    iWeibo - 微博软件 使用新浪微博开放的数据源API,实现软件功能。 功能包括: 浏览微博;转发微博;评论微...

  • js案例:倒计时,仿微博评论

    效果:倒计时: Body部分: 距离下课还有: || JS部分: function timer(){ ...

  • js day19

    1.仿微博发表评论 1)css样式 2)div 3)script 把图片做成随机数 2.仿新浪微博发布评论js代码...

  • 纯银简书文章整理

    无标题笔记:博客作者去向无标题笔记:评论功能无标题文章:微博置顶功能无标题文章:微博置顶、用户分组功能无标题文章:...

  • 电视微博从零到一

    新浪微博是一个媒体产品 新浪微博相比Twitter,最大的区别在于评论功能。在转发之外加上的评论功能吞噬了一部分转...

  • 使用node搭建自动发图文微博机器人

    仅供学习交流,请勿用于商业用途,并遵守新浪微博相关规定。 代码目录 此微博机器人的实现功能如下: 模拟登陆新浪微博...

  • 简单的回帖评论设计

    实现类似QQ空间,微信聊天风格的回帖评论 2. sql表设计 CREATE TABLE `comments` ( ...

  • 说说此空间创建的用意

    新浪微博于2009年8月14日开始内测。9月25日,新浪微博正式添加了@功能以及私信功能,此外还提供“评论”和“转...

  • 需求

    目录 阅读 字号居中加图等功能 文章评分 赞踩还是评分? 分享 微博微信 评论

网友评论

      本文标题:js模拟回帖/微博评论功能案例

      本文链接:https://www.haomeiwen.com/subject/quhkpftx.html