实战迷你留言板学习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <!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> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!