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 相关文章推荐
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
vue interceptor 使用教程实例详解
Sep 13 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
小程序实现背景音乐播放和暂停
Jun 19 Javascript
理解JavaScript中的对象
Aug 25 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
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
Python检测QQ在线状态的方法
2015/05/09 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
大三在校生电子商务求职信
2013/10/29 职场文书
素质拓展感言
2014/01/29 职场文书
小学生手册家长评语
2014/04/16 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
写景作文评语集锦
2014/12/25 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
Python包argparse模块常用方法
2021/06/04 Python