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 相关文章推荐
jquery中实现标签切换效果的代码
Mar 01 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
JS获取各种宽度、高度的简单介绍
Dec 19 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
Function.prototype.apply()与Function.prototype.call()小结
Apr 27 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
Aug 01 Javascript
js简单获取表单中单选按钮值的方法
Aug 23 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 Javascript
JS实现AES加密并与PHP互通的方法分析
Apr 19 Javascript
js使用highlight.js高亮你的代码
Aug 18 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 Javascript
vue实现简易音乐播放器
Aug 14 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防注入代码
2010/04/07 PHP
三种php连接access数据库方法
2013/11/11 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
input禁止键盘及中文输入,但可以点击
2014/02/13 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
python uuid模块使用实例
2015/04/08 Python
Python获取邮件地址的方法
2015/07/10 Python
python 中random模块的常用方法总结
2017/07/08 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Python对象的属性访问过程详解
2020/03/05 Python
python如何判断IP地址合法性
2020/04/05 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
如何利用find命令查找文件
2015/02/07 面试题
小学教师办公室制度
2014/02/03 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
导游词之珠海轮廓
2019/10/25 职场文书