JavaScript学习笔记(三)——留言板知操纵DOM节点
用JavaScript写了一个简易的留言板,暂不涉及数据库接入等。
1.功能以及流程
主要功能即为留言,用两个文本框接受用户输入的用户名以及留言内容,然后通过“提交留言”按钮将用户名+留言发布到下方的留言列表区域。
2.页面样式设计

样式很简单,就不上代码了。
3.使用JS实现留言功能
代码:
function getMessage(){
var btn = document.getElementById("btn1"); //绑定发布按钮
var message = document.getElementById("message");
var name = document.getElementById("name");
var nameValue = "";
var messageValue = "";
btn.onclick = function(){
nameValue = name.value || "Lon"; //设置默认值
messageValue = message.value || "http://www.cnblogs.com/lonhon/" ;
var msgList = document.getElementById("messageList");
var msgDiv = document.createElement("div");
msgDiv.className="msg"; //设置留言Div样式
var msgTxt = document.createTextNode(nameValue+"留言:"+messageValue);
msgDiv.appendChild(msgTxt);
msgList.appendChild(msgDiv);
}
}
function addLoadEvent(func)
{
var oldonload = window.onload; //得到上一个onload事件的函数
if(typeof window.onload != 'function')
{
window.onload = func;
}
else
{
window.onload = function()
{
oldonload(); //调用之前覆盖的onload事件的函数
func(); //调用当前事件函数
}
}
}
4.测试,首先不输入内容看是否有返回设置的默认值

这一步OK,返回去看JS中设置的默认值

5.测试,输入内容

总结,这个JS留言板设计的较为简陋,主要是练习JS操纵DOM节点,在本次中即为点击#btn1 下方列表则通过appendChild方法添加新DIV。

26行中,msgList绑定留言列表DIV,然后通过creatElement创建单个msgDiv,写入用户名和留言内容,再通过向父级msgList添加子节点的方式将msgDiv添加到留言列表,即实现了留言发布的功能。
加深了JS中一切皆为对象的理念,这也是面向对象编程的好处吧,能够很好的把控所操作的东西,比如上图中28行,向msgDiv添加css样式。下一步准备模仿腾讯微博的微博发布页面,实现相同的功能并加入新的元素比如时间、头像等。
JavaScript学习笔记(三)——留言板知操纵DOM节点的更多相关文章
- Javascript学习笔记三——操作DOM(二)
Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...
- JavaScript学习笔记 - 进阶篇(8)- DOM对象,控制HTML元素
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...
- JavaScript学习笔记 - 入门篇(3)- DOM操作
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- JavaScript学习笔记(三十八) 复制属性继承
复制属性继承(Inheritance by Copying Properties) 让我们看一下另一个继承模式—复制属性继承(inheritance by copying properties).在这 ...
- ROS学习笔记三:编写第一个ROS节点程序
在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package). 1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...
- JavaScript学习记录三
title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
随机推荐
- Eclipse设置问题:字体大小、修改注释内容、修改快捷键
一.设置字体大小,看下图,包括了设计代码字体大小和控制台输出字体大小 二.修改注释内容 选择window---->>preferences 选择Java---->>code s ...
- Java图书管理系统(用Java常用集合实现)
图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭 ...
- OpenCV探索之路(十三):详解掩膜mask
在OpenCV中我们经常会遇到一个名字:Mask(掩膜).很多函数都使用到它,那么这个Mask到底什么呢? 一开始我接触到Mask这个东西时,我还真是一头雾水啊,也对无法理解Mask到底有什么用.经过 ...
- 【css3网页布局】flex盒子模型
1.0 前言 网页布局(layout)是CSS的一个重点应用. 经典布局类型: 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊 ...
- 开涛spring3(6.9) - AOP 之 6.9 代理机制
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理.CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理. JDK动态代理:使用java.lang.reflect ...
- JVM、GC与HashMap
阿里巴巴突然来了个面试邀请电话,问了些java底层的东西,不知所措,所以专门花了些时间做了下学习,顺便记录下,好记性不如烂笔头. 一.对JAVA的垃圾回收机制(GC)的理解 不同于C/C++需要手工释 ...
- Swoole笔记(一)
简介 Swoole是一个PHP扩展,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读 ...
- python-冒泡排序与插入排序
def bubble_sort(L): """ 设计思路:从前往后遍历列表,每次选取列表中两个数进行比较,如果不符合排序的规则,则进行交换 这样一次遍历后,最大(最小)的 ...
- java中File类应用:遍历文件夹下所有文件
练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...
- C++抽象编程·运算符重载与友元函数
运算符重载(Operator overloading) 从我们在几个前篇的类的层次介绍中可以知道,C++可以扩展标准运算符,使其适用于新类型.这种技术称为运算符重载. 例如,字符串类重载+运算符,使其 ...