js实现类似评论的发表和编辑

思路:

1.有一个text area 框,宽600 高400,边框是1像素 实线 黑色,text area框不允许用户随意缩放

2.有一个按钮,文字内容是:发布评论

3.点击按钮,获取用户输入的内容并显示在下方的ul li标签当中(获取一个内容创建一个li标签),

        li标签宽度600,高度60,文字垂直居中;如果用户没有输入内容,点击按钮时会弹出一个警示框提示:请输入您想要评论的内容

4.在li标签当中左边是评论的内容,右边是修改、删除按钮,修改是按钮,删除是a标签,点击删除则这条评论删除;

        点击修改弹出一个输入框输入修改后的内容,拿到修改后的内容更新当前的评论。

效果图:

完整代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>微博评论</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .w {
            width: 600px;
            margin: 0 auto;
        }

        .bigBox {
            width: 600px;
            margin-top: 20px;
        }

        textarea {
            width: 600px;
            height: 280px;
            border: 0;
            outline: 0;
            border: 1px solid black;
            resize: none;
            padding: 20px;
            box-sizing: border-box;
        }

        .btnBox {
            width: 100%;
            height: 40px;
            position: relative;
        }

        #btn {
            display: block;
            width: 100px;
            height: 40px;
            position: absolute;
            right: 0;
            background-color: #FF7D40;
            border: 0;
            color: #fff;
        }

        ul li {
            width: 600px;
            height: 60px;
            line-height: 60px;
            background-color: #3c3c3c;
            color: #fff;
            margin-top: 10px;
            padding: 0 20px;
            list-style: none;
            box-sizing: border-box;
        }

        ul li a {
            float: right;
            text-decoration: none;
            color: #fff;
        }

        ul li input {
            float: right;
            margin: 20px 16px 0 0;
        }
    </style>
</head>

<body>
    <div class="bigBox w">
        <textarea name="" id="txt" cols="30" rows="10"></textarea>
        <div class="btnBox">
            <button id="btn">发布评论</button>
        </div>
        <ul id="utxt">

        </ul>
    </div>
    <!-- js部分 -->
    <script>
        //获取元素
        var txt = document.getElementById('txt')
        var btn = document.getElementById('btn')
        var utxt = document.getElementById('utxt')
        //添加点击按钮事件
        btn.onclick = function () {
            if (txt.value == 0) {
                alert('请输入您想要评论的内容')
            } else {
                var li = document.createElement('li')
                utxt.appendChild(li)
                li.innerHTML = txt.value + "<a href='javascript:;'>删除</a>" + "<input type='button' value='编辑'>"
                txt.value = ''
            }
            // console.log(li);
            //编辑
            var giao = document.querySelectorAll('input')
            for (var i = 0; i < giao.length; i++) {
                giao[i].onclick = function () {
                    li.innerHTML = prompt('请输入您修改后的内容') + "<a href='javascript:;'>删除</a>" +
                        "<input type='button' value='编辑'>"
                }
            }

            //删除
            var del = document.querySelectorAll('a')
            for (var i = 0; i < del.length; i++) {
                del[i].onclick = function () {
                    // console.log(this);
                    utxt.removeChild(this.parentNode)
                }
            }

        }
    </script>
</body>

</html>

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现类似 Word 批注的功能,可以使用 JavaScript 和 HTML/CSS 来创建一个类似的界面。以下是实现步骤: 1. 首先,需要在页面上创建一个可编辑的文本框,用于输入文本内容。 2. 在文本框下方创建一个评论区域,用于显示批注内容。 3. 当用户选中文本框中的一段文本时,弹出一个窗口,让用户输入批注内容并保存。 4. 将保存的批注内容展示在评论区域中,并且将其与原始文本关联起来。 5. 当用户点击评论区域中的某个批注时,高亮显示对应的文本,并且弹出批注内容。 实现这个功能需要用到一些 JavaScript 的 DOM 操作和事件监听。具体实现步骤可以参考下面的代码示例。 HTML 代码: ``` <textarea id="content" rows="10" cols="50"></textarea> <div id="comments"></div> ``` JavaScript 代码: ```javascript // 获取文本框和评论区域的 DOM 元素 var content = document.getElementById('content'); var comments = document.getElementById('comments'); // 监听文本框的选择事件 content.addEventListener('mouseup', function(e) { // 获取选择的文本 var selection = window.getSelection().toString(); // 如果有选择的文本,则弹出批注窗口 if (selection) { var comment = prompt('请添加批注:'); if (comment) { // 创建一个新的批注元素 var span = document.createElement('span'); span.innerHTML = comment; span.classList.add('comment'); // 将批注元素添加到评论区域 comments.appendChild(span); // 获取选择的文本的范围,并将其与批注元素关联起来 var range = window.getSelection().getRangeAt(0); range.surroundContents(span); } } }); // 监听评论区域的点击事件 comments.addEventListener('click', function(e) { // 如果点击的是批注元素,则高亮显示对应的文本,并弹出批注内容 if (e.target.classList.contains('comment')) { var range = document.createRange(); range.selectNodeContents(e.target.previousSibling); window.getSelection().removeAllRanges(); window.getSelection().addRange(range); alert(e.target.innerHTML); } }); ``` CSS 代码: ```css .comment { background-color: yellow; cursor: pointer; } ``` 这段代码实现了一个简单的类似 Word 批注的功能,当用户选择文本时,会弹出一个窗口让用户输入批注内容,然后将批注内容展示在评论区域中,同时将其与原始文本关联起来。当用户点击评论区域中的某个批注时,会高亮显示对应的文本,并且弹出批注内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值