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 png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
JQuery 选择器、过滤器介绍
Feb 14 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
js实现使用鼠标拖拽切换图片的方法
May 04 Javascript
JS+CSS实现的拖动分页效果实例
May 11 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
Jul 01 Javascript
JavaScript的this关键字的理解
Jun 18 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
原生JS实现的跳一跳小游戏完整实例
Jan 27 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
php生成文件
2007/01/15 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
中学教师岗位职责
2013/11/26 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
小学生寒假家长评语
2014/04/16 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers