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 添加/移除CSS类实现代码
Feb 11 Javascript
Javascript面向对象设计一 工厂模式
Dec 20 Javascript
6种javascript显示当前系统时间代码
Dec 01 Javascript
JS留言功能的简单实现案例(推荐)
Jun 23 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
深入理解JavaScript定时机制
Oct 27 Javascript
详解jQuery事件
Jan 13 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
Vue 监听列表item渲染事件方法
Sep 06 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
Vue动态获取width的方法
2018/08/22 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
python能自学吗
2020/06/18 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
财务出纳员岗位职责
2013/11/26 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
中学生家长评语大全
2014/04/16 职场文书
连带责任保证书
2014/04/29 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
大学生自荐书范文
2015/03/05 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技