实战迷你留言板学习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style2.css">
</head>
<body>
    <form class="comment" id="comment">
        <label for="content">请留言:</label>
        <textarea name="content" id="content" cols="30" rows="5" placeholder="不要超过100个字符"></textarea>
        <button class="submit" type="button" name="submit">提交</button>
      </form>
        <ul class="list">
            <!-- 当点击按钮时其实是删除“删除按钮的父节点” -->
       <!-- <li>hhhhh <button>删除</button></li> -->
        </ul>  
        <script>
     // 1.拿到表单,comment代表当前留言的意思,拿到id属性
     const comment = document.forms.comment;
     // 2.拿到文本域
     const content = comment.content;
     // 3.能拿到提交按钮
     const bth = comment.submit;
     // 4.拿到列表
     const list = document.querySelector('.list');
     // 5.查看
     //  console.log(comment,content,bth,list)

     //  给提交按钮添加一个点击事件
     bth.onclick = ev =>{
        // 用户提交的内容用value来表示,content文本域对象,用trim来过滤掉空格
        let value = content.value.trim();
        // 进行判断
        if (value.length > 0 && value.length <= 100) {
            // 表示有内容了,将用户内容插入到列表中,最新的留言在最上面
            // 创建一个li标签
            const li = document.createElement('li');
            // 往里赛内容
            li.textContent=value;
            // 添加下边白色框高度为2
            li.style.borderBottom='1px solid white';
            li.style.minHeight='2em'
            li.style.display = 'flex'; // 使用 Flexbox 布局  
            li.style.alignItems = 'center'; // 垂直居中  
            li.style.justifyContent = 'space-between'; // 水平两端对齐

            // 创建一个删除按钮
            const delBth=document.createElement('button')
            // 创建名字
            delBth.textContent = '删除留言';
            delBth.style.float='right'
            delBth.classList.add('del-btn');
            // 创建删除按钮的点击事件
            delBth.onclick = function(){
                // confir对话框,显示两个内容1.确定2.取消
                if (confirm('是否删除?')){
                    // true:删除
                    // 如何获取父元素
                    // ths表示删除按钮,parentNode代表父元素
                    this.parentNode.remove();
                    // 用户反馈
                    alert('删除成功');
                    // 获取焦点
                    content.focus();
                    // 结束
                return false;
                }
            }


            //  将删除按钮添加到<li>元素中
            li.append(delBth);

            // 将新的留言项目放在列表顶部
            list.prepend(li)
            alert('留言成功');
            // 清空文本域
            content.value=null;
            // content.value='';
            // 将焦点放回到文本域
            content.focus();
            
        }else{
            alert('没有输入或超出长度');
            // 将焦点放回到文本域
            content.focus();
            // 结束
            return false;
        }
    }
    </script>
</body>
</html>

  

posted @ 2024-06-15 18:28  好好学习天天向上上上  阅读(9)  评论(0编辑  收藏  举报