JS实现简易留言板(节点操作)


Posted in Javascript onMarch 16, 2020

本文实例为大家分享了JS实现简易留言板的具体代码,供大家参考,具体内容如下

今天的案例主要是对节点进行操作

创建节点、添加节点、删除节点以及为节点添加内容的操作。 

就是一个简单的留言板功能,可以发布留言,删除留言。

主要思路:两个鼠标点击事件——点击发布按钮事件和点击删除按钮事件

发布按钮事件:首先在文档中创建li节点。然后第二步,先把文本域中的内容获取出来赋给li,这里要注意,文本域是表单元素,获取表单元素的内容是使用表单的特有属性value,要与普通元素获取内容的innerHTML进行区分;再把删除链接添加到li中,利用字符串拼接的方式。最后把li节点添加到ul中,添加的方式有两种,是直接添加到ul列表项的末尾,也可以添加到指定位置。这里我是选中插入到ul列表的最前面。

删除按钮事件:点击删除按钮的事件是在把创建的li添加到ul中之后定义的。删除的操作主要是要弄清除是父节点元素删除子节点元素。在这里点击删除链接,删除的是当前被点击的按钮所在的li。li是删除连接的父节点元素。

分析永远比敲代码重要。要先分析,再去敲代码,实现需求。

先看效果图吧

默认是没有任何内容的

JS实现简易留言板(节点操作)

在文本域中输入,点击发布,可以发布留言,如果发完想删除,可以点击里面的删除按钮,删除留言

JS实现简易留言板(节点操作)

JS实现简易留言板(节点操作)

删除操作后: 

JS实现简易留言板(节点操作)

JS代码:

<script>
  // 点击发布,会把文本域中的内容发布到ul中
  // 点击删除,会删除留言
  // 1.获取事件源 文本域 按钮 文本域
  var text = document.querySelector('textarea');
  var btn = document.querySelector('button');
  var ul = document.querySelector('ul');
  // 2.注册点击事件
  btn.onclick = function () {
   // 首先会创建一个li 并把文本域的内容给li 再把li添加到ul中
   var li = document.createElement('li');
   if (text.value == '') {
    alert('您没有输入内容')
   } else {
    // 文本域的值 value
    // 增加一个删除留言的按钮
    li.innerHTML = text.value + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" >删除</a>';
    ul.insertBefore(li, ul.children[0]); // 把最新的发布放到最前面
    // ul.appendChild(li);
 
    // 3.注册删除点击事件
    var removeBtn = document.querySelectorAll('a');
    for (var i = 0; i < removeBtn.length; i++) {
     removeBtn[i].onclick = function () {
      ul.removeChild(this.parentNode);
     }
    }
   }
  }
</script>

全部代码:

<!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;
  }
 
  body {
   padding: 100px;
  }
 
  textarea {
   width: 200px;
   height: 100px;
   border: 1px solid pink;
   outline: none;
   resize: none;
  }
 
  ul {
   margin-top: 50px;
  }
 
  li {
   width: 300px;
   padding: 5px;
   background-color: rgb(245, 209, 243);
   color: red;
   font-size: 14px;
   margin: 15px 0;
  }
 
  li a {
   float: right;
  }
 </style>
</head>
 
<body>
 <textarea name="" id=""></textarea>
 <button>发布</button>
 <ul>
 
 </ul>
 <script>
  // 点击发布,会把文本域中的内容发布到ul中
  // 点击删除,会删除留言
  // 1.获取事件源 文本域 按钮 文本域
  var text = document.querySelector('textarea');
  var btn = document.querySelector('button');
  var ul = document.querySelector('ul');
  // 2.注册点击事件
  btn.onclick = function () {
   // 首先会创建一个li 并把文本域的内容给li 再把li添加到ul中
   var li = document.createElement('li');
   if (text.value == '') {
    alert('您没有输入内容')
   } else {
    // 文本域的值 value
    // 增加一个删除留言的按钮
    li.innerHTML = text.value + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" >删除</a>';
    ul.insertBefore(li, ul.children[0]); // 把最新的发布放到最前面
    // ul.appendChild(li);
 
    // 3.注册删除点击事件
    var removeBtn = document.querySelectorAll('a');
    for (var i = 0; i < removeBtn.length; i++) {
     removeBtn[i].onclick = function () {
      ul.removeChild(this.parentNode);
     }
    }
   }
  }
 </script>
</body>
 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 Javascript
window.onerror()的用法与实例分析
Jan 27 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
几种tab切换详解
Feb 03 Javascript
详解数组Array.sort()排序的方法
May 09 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 Javascript
深入浅析vue-cli@3.0 使用及配置说明
May 08 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
JavaScript实现动态留言板
Mar 16 Javascript
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
JavaScript实现旋转木马轮播图
Mar 16 #Javascript
基于JavaScript实现贪吃蛇游戏
Mar 16 #Javascript
原生js实现的金山打字小游戏(实例代码详解)
Mar 16 #Javascript
JavaScript实现拖拽效果
Mar 16 #Javascript
js实现点赞效果
Mar 16 #Javascript
Javascript Web Worker使用过程解析
Mar 16 #Javascript
Javascript ParentNode和ChildNode接口原理解析
Mar 16 #Javascript
You might like
PHP个人网站架设连环讲(三)
2006/10/09 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP多线程类及用法实例
2014/12/03 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python读取xlsx的方法
2018/12/25 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
建筑工地质量标语
2014/06/12 职场文书
政府法律服务方案
2014/06/14 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python