前端学习笔记之 创建节点 与 添加节点案例
发布留言案例实现
- 一、案例分析
- 二、实现过程
- 三、完整代码
一、案例分析
- 核心思路:点击按钮之后,就动态创建 li,添加到 ul 里面;
- 创建 li 的同时,把文本域里面的值通过 li.innerHTML 赋值给 li;
- 显示新的留言( 后面显示:appendChild || 前面显示:insertBefore)
二、实现过程
1. 基本骨架
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</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;}</style>
</head>
<body><textarea name="" id=""></textarea><button>发布</button><ul></ul><script></script>
</body>
2. 获取元素
<script>// 1. 获取元素var btn = document.querySelector('button');var text = document.querySelector('textarea');var ul = document.querySelector('ul');</script>
3. 注册事件
<script>// 1. 获取元素var btn = document.querySelector('button');var text = document.querySelector('textarea');var ul = document.querySelector('ul');// 2.注册事件btn.onclick = function () {// (1) 创建元素var li =document.createElement('li');// (2) 添加元素ul.appendChild(li);}
</script>
然而,仅仅如此,在没有输入内容的情况下,也会创建和添加元素。因此,需要加个判断:
<script>// 1. 获取元素var btn = document.querySelector('button');var text = document.querySelector('textarea');var ul = document.querySelector('ul');// 2. 注册事件btn.onclick = function() {if (text.value == '') {alert('您还没有输入内容');return false;} else {// console.log(text.value);// (1) 创建元素var li = document.createElement('li');// (2) 添加元素ul.appendChild(li);}}
</script>
- 给添加的 li 赋值
<script>// 1. 获取元素var btn = document.querySelector('button');var text = document.querySelector('textarea');var ul = document.querySelector('ul');// 2. 注册事件btn.onclick = function() {if (text.value == '') {alert('您没有输入内容');return false;} else {// console.log(text.value);// (1) 创建元素var li = document.createElement('li');li.innerHTML = text.value;// (2) 添加元素ul.appendChild(li); // 最新留言插入到最后}}</script>
如要实现发布的最新留言永远在最前面,则修改 ul.appendChild(li) 为 ul.insertBefore(li,ul.children[0]);
三、完整代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</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;}</style>
</head>
<body><textarea name="" id=""></textarea><button>发布</button><ul></ul><script>// 1. 获取元素var btn = document.querySelector('button');var text = document.querySelector('textarea');var ul = document.querySelector('ul');// 2. 注册事件btn.onclick = function() {if (text.value == '') {alert('您没有输入内容');return false;} else {// console.log(text.value);// (1) 创建元素var li = document.createElement('li');li.innerHTML = text.value;// (2) 添加元素// ul.appendChild(li); // 最新发布的放到最后面ul.insertBefore(li,ul.children[0]); // 最新发布的发最前面}}</script>
</body>
</html>
前端学习笔记之 创建节点 与 添加节点案例相关推荐
- Web前端学习笔记——HTML5与CSS3之购物车宣传案例
<购物车宣传>案例 综合运用h5c3知识且进行一定扩展 能使用jquery完成网页常见交互行为 实际工作开发当中能应对活动宣传页 全屏切换效果 通过鼠标的滚轮 切换全屏页面 使用fullp ...
- Web前端学习笔记——HTML5与CSS3之QQ TIM案例
<QQ TIM>案例 Stellar插件 描述 视差滚动(Parallax Scrolling)指网页滚动过程中, 多层次的元素进行不同程度的移动,视觉上形成立体运动效果的网页展示技术 主 ...
- 前端学习笔记-jQuery-jQuery动画(王者荣耀手风琴案例)
案例:王者荣耀手风琴 分析: 鼠标经过某个小li 有两步操作: 1.当前小li 宽度变为 224px, 同时里面的小图片淡出,大图片淡入 2.其余兄弟小li宽度变为69px, 小图片淡入, 大图片淡出 ...
- JavaScript学习笔记:创建、添加与删除节点
JavaScript学习笔记:创建.添加与删除节点 文章目录 JavaScript学习笔记:创建.添加与删除节点 一.DOM对象节点类型 二.创建节点 1.创建元素节点 2.创建文本节点 3.创建属性 ...
- oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...
[学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53 来源:Oracle研究中心 作者:HTZ 点击: 次 天萃荷净 Ora ...
- Hadoop学习笔记—13.分布式集群中节点的动态添加与下架
Hadoop学习笔记-13.分布式集群中节点的动态添加与下架 开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如 ...
- 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单
2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...
- LabView学习笔记(八):属性节点
Labview学习笔记: LabView学习笔记(一):基础介绍 LabView学习笔记(二):滤波器实验 LabView学习笔记(三):基本控件 LabView学习笔记(四):动态数据类型 LabV ...
- 前端学习笔记(js基础知识)
前端学习笔记(js基础知识) JavaScript 输出 JavaScript 数据类型 常见的HTML事件 DOM 冒泡与捕获 流程控制语句 for..in 计时器 let,var,const的区别 ...
最新文章
- 日志规范多重要,这篇文章告诉你!
- 对电商用户的数据分析!
- leetcoder reverse polish notation解题笔记
- primer3批量设计引物
- 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
- 点击home键_iPhone小技巧:无Home键iPhone11如何强制重启?
- 微软发布 .Net Core 3.0 版重大更新,对开发者来说意味着什么?
- sds数据结构,Simple Dynamic String,简单动态字符串
- 基于51单片机的指纹考勤系统
- jedate限制开始日期不能大于结束日期
- 面试:Spring Boot的优缺点
- sis最新ip地址2020入口一_2020云南高考成绩公布时间最新 云南高考查成绩方式入口大全...
- Python模拟微信发红包
- arcgis for js4.x自定义图例位置添加到地图并导出
- tapestry3常见问题
- python二十行代码教你批量采集超高清 jpg
- js-时间相关操作(获取当前日期、最近三天、近一月及前N天的日期)
- 手撸架构,Nginx 面试40问
- allegro制作通孔焊盘封装-flash热风焊盘-图文并茂的Allegro 通孔焊盘制作教程
- 【虚幻引擎UE】UE5 简单实现范围计算并绘制圆圈
热门文章
- String、StringBuilder和StringBuffer的区别和用法
- Hbase 2.0 RegionObserver使用
- 33个常见问题!超全Windows排查手册
- Auto-Keras与AutoML:入门指南
- 支持Dubbo生态发展,阿里巴巴启动新的开源项目 Nacos
- “融合、智能、绿色”施耐德电气线上工博以全生命周期解决方案助推数字化
- 漫画:图的 “多源” 最短路径
- 什么是云计算基础设施? | 技术头条
- 数据中台精华问答 | 数据中台和传统数仓的区别是什么?
- IDC敲黑板啦:未来企业IT以混合云为主