前端实现简易版发布留言

简介: 网页中留言和评论这个模块十分常见,今天我来写一个简易版的留言案例,为大家提供一点思路,很简单哦!

前言

网页中留言和评论这个模块十分常见,今天我来写一个简易版的留言案例,为大家提供一点思路,很简单哦!

思路

添加留言核心思路:
1.点击按钮之后,就动态创建一个 li ,添加到 ul 里面。
2.创建 li 的同时,把文本域里面的值通 li. innerHTML 赋值给 li 。
3.如果想要新的留言后面显示就用 appendChild ,如果想要前面显示就用 insertBefore。

删除留言核心思路:
1.当我们把文本域里面的值赋值给li的时候,多添加一个删除的链接。
2.需要把所有的链接获取过来,当我们点击当前的链接的时候,删除当前链接所在的 li 。
3.阻止链接跳转需要给a标签添加 javascript:void (0);或者 javascript:; 。

代码实现

<!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;
        }
        li{
            list-style: none;
            width: 340px;
        }
        li a{
            float: right;
            text-decoration: none;
        }
        div{
            width: 400px;
            margin: 100px auto;
        }
        textarea{
            width: 340px;
            height: 100px;
            resize: none;  /*禁止textarea拖动改变输入框大小*/
        }
    </style>
</head>
<body>
    <div>
        <textarea name="" id=""></textarea>
        <button>发布</button>
        <ul>
        </ul>
        <a href="javascript:;"></a>
    </div>
    <script>
        var text = document.querySelector("textarea");
        var btn = document.querySelector("button");
        var ul = document.querySelector("ul");
        btn.onclick = function(){
            if(text.value == ""){
                alert("请输入内容!");
                return false;
            }else{
                //1.创建元素
                var li = document.createElement("li");
                li.innerHTML = text.value + '<a href="javascript:;">删除</a>';
                // 2.添加元素
                ul.insertBefore(li,ul.children[0]);
            }
                // 3.删除元素  删除的是当前链接的li 即它的父亲
            for (var i = 0;i<ul.children.length;i++){
                var a = ul.children[i].children[0];
                a.onclick = function(){
                    ul.removeChild(this.parentNode);
                }
            }
        }
    </script>
</body>
</html>

动图展示

1.gif

相关文章
|
JavaScript 前端开发
React+html2canvas+jspdf+antd快速实现前端pdf预览及打印
文章的总结目标实际上就是一个前端pdf打印组件,由於能在往后的其他项目中得以快速上手,并能根据所在项目需要快速自定义扩展,因此組件非常简陋直白,文章是实践过程的记录产物,并不保证完全正确,仅作参考。
React+html2canvas+jspdf+antd快速实现前端pdf预览及打印
|
前端开发 JavaScript
微前端实现方案之iframe
微前端实现方案之iframe
微前端实现方案之iframe
|
JavaScript 算法 前端开发
【前端算法】JS实现数字千分位格式化
JS实现数字千分位格式化的几种思路,以及它们之间的性能比较
359 1
|
JavaScript 前端开发 IDE
如何从一台新电脑配置前端常用工具实现快速开发
如何从一台新电脑配置前端常用工具实现快速开发
如何从一台新电脑配置前端常用工具实现快速开发
|
前端开发
前端实现导出word(docxtemplater、pizzip、jszip-utils、file-saver )
docxtemplater、pizzip、jszip-utils、file-saver 前端实现导出word
1287 0
前端实现导出word(docxtemplater、pizzip、jszip-utils、file-saver )
|
存储 JSON JavaScript
|
JavaScript 前端开发
vue 前端实现随机背景色
vue 前端实现随机背景色
vue 前端实现随机背景色
|
存储 前端开发 算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
179 0
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
|
移动开发 自然语言处理 小程序
前端不使用 i18n,如何优雅的实现多语言?
前端不使用 i18n,如何优雅的实现多语言?
前端不使用 i18n,如何优雅的实现多语言?
|
存储 移动开发 前端开发
Vue-Router 前端路由实现的思路
Vue-Router 前端路由实现的思路
211 0
Vue-Router 前端路由实现的思路