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 分栏效果实现代码
Aug 29 Javascript
JavaScript 实现鼠标拖动元素实例代码
Feb 24 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
基于jquery实现下拉框美化特效
Feb 02 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
JS对日期操作封装代码实例
Nov 08 Javascript
JavaScript中变量提升和函数提升的详解
Aug 07 Javascript
JavaScript判断数据类型有几种方法及区别介绍
Sep 02 Javascript
如何在vue-cli中使用css-loader实现css module
Jan 07 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
用PHP生成自己的LOG文件
2006/10/09 PHP
PHP array 的加法操作代码
2010/07/24 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
Python3 中文文件读写方法
2018/01/23 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
Python 之 Json序列化嵌套类方式
2020/02/27 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
Linux的主要特性
2016/09/03 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
企划经理的岗位职责
2013/11/17 职场文书
继承权公证书
2014/04/09 职场文书
教师节宣传方案
2014/05/23 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
画展邀请函
2015/01/31 职场文书
离职证明范本
2015/06/12 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
python 如何用terminal输入参数
2021/05/25 Python
Pandas数据类型之category的用法
2021/06/28 Python
Python first-order-model实现让照片动起来
2022/06/25 Python