原生js实现留言板的增删以及留言的时间

在这个例子中,我们增加了以下功能:

  1. 输入框为空时进行提示

  2. 添加留言时间显示

  3. 添加留言删除功能

  4. 添加一些 CSS 样式

我们通过创建不同的元素,将留言元素拆分成了三个部分,分别是留言头、留言内容和删除按钮。其中,留言头中包含了用户的姓名和留言时间,删除按钮添加了点击事件,可将当前留言元素从留言列表中删除。

实现原理大致就是这样,样式什么的可以自己添加修改。

<!DOCTYPE html>
<html>
<head>
    <title>Guestbook Example</title>
</head>
<body>
    <h2>Guestbook</h2>
    <div>
        <input type="text" id="nameInput" placeholder="Your name">
        <textarea id="messageInput" placeholder="Your message"></textarea>
        <button onclick="addMessage()">Add Message</button>
    </div>
    <div id="messageList">
        <!-- 留言列表 -->
    </div>

    <script>
        // 获取留言输入框和留言列表元素
        var nameInput = document.getElementById("nameInput");
        var messageInput = document.getElementById("messageInput");
        var messageList = document.getElementById("messageList");

        // 添加留言到留言列表的函数
        function addMessage() {
            var name = nameInput.value;
            var message = messageInput.value;

            if (!name || !message) {
                alert("Please enter your name and message.");
                return;
            }

            // 创建留言元素
            var messageItem = document.createElement("div");
            messageItem.className = "message-item";

            var messageHeader = document.createElement("div");
            messageHeader.className = "message-header";
            messageHeader.innerHTML = "<strong>" + name + "</strong><span class='message-time'>" + new Date().toLocaleString() + "</span>";

            var messageContent = document.createElement("div");
            messageContent.className = "message-content";
            messageContent.innerText = message;

            var messageDelete = document.createElement("button");
            messageDelete.className = "message-delete";
            messageDelete.innerText = "Delete";
            messageDelete.addEventListener("click", function() {
                messageItem.remove();
            });

            messageItem.appendChild(messageHeader);
            messageItem.appendChild(messageContent);
            messageItem.appendChild(messageDelete);

            // 将留言元素添加到留言列表
            messageList.appendChild(messageItem);

            // 清空输入框
            nameInput.value = "";
            messageInput.value = "";
        }
    </script>

    <style>
        .message-item {
            border: 1px solid #ddd;
            margin-bottom: 10px;
            padding: 10px;
        }

        .message-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .message-time {
            font-size: 12px;
            color: #666;
        }

        .message-content {
            margin-top: 10px;
            margin-bottom: 10px;
        }

        .message-delete {
            background-color: #fff;
            border: 1px solid #ccc;
            color: #333;
            padding: 5px 10px;
            border-radius: 3px;
            cursor: pointer;
        }
    </style>
</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值