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 相关文章推荐
js DOM模型操作
Dec 28 Javascript
javascript笔记 String类replace函数的一些事
Sep 22 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
swtich/if...else的替代语句
Aug 16 Javascript
AngularJs 国际化(I18n/L10n)详解
Sep 01 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
Nov 23 Javascript
JavaScript判断变量名是否存在数组中的实例
Dec 28 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
JS+canvas五子棋人机对战实现步骤详解
Jun 04 Javascript
JavaScript实现简易计算器小功能
Oct 22 Javascript
Canvas三种动态画圆实现方法说明(小结)
Apr 16 Javascript
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
自己做矿石收音机
2021/03/02 无线电
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
php以post形式发送xml的方法
2014/11/04 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
js实现简单模态框实例
2018/11/16 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
PHP面试题及答案一
2012/06/18 面试题
离婚撤诉申请书范本
2015/05/18 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书