用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节点的更多相关文章

  1. Javascript学习笔记三——操作DOM(二)

    Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...

  2. JavaScript学习笔记 - 进阶篇(8)- DOM对象,控制HTML元素

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...

  3. JavaScript学习笔记 - 入门篇(3)- DOM操作

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...

  4. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  5. JavaScript学习笔记(三十八) 复制属性继承

    复制属性继承(Inheritance by Copying Properties) 让我们看一下另一个继承模式—复制属性继承(inheritance by copying properties).在这 ...

  6. ROS学习笔记三:编写第一个ROS节点程序

    在编写第一个ROS节点程序之前需要创建工作空间(workspace)和功能包(package).   1 创建工作空间(workspace) 创建一个catkin_ws: #注意:如果使用sudo一次 ...

  7. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  8. JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别

    JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...

  9. JavaScript学习记录三

    title: JavaScript学习记录三 toc: true date: 2018-09-14 23:51:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

随机推荐

  1. vue1.0和vue2.0的区别(二)

    这篇我们继续之前的vue1.0和vue2.0的区别(一)继续说 四.循环 学过vue的同学应该知道vue1.0是不能添加重复数据的,否则它会报错,想让它重复添加也不是不可以,不过需要定义别的东西 而v ...

  2. MyBatis源码解读(3)——MapperMethod

    在前面两篇的MyBatis源码解读中,我们一路跟踪到了MapperProxy,知道了尽管是使用了动态代理技术使得我们能直接使用接口方法.为巩固加深动态代理,我们不妨再来回忆一遍何为动态代理. 我相信在 ...

  3. JVM方法调用

    当我们站在JVM实现的角度去看方法调用的时候,我们自然会想到一种分类: 1.编译代码的时候就知道是哪个方法,永远不会产生歧义,例如静态方法,private方法,构造方法,super方法. 2.运行时才 ...

  4. Cornerstone 3.0.3 for mac 破解版

    破解版本 直接安装即可 解压密码:xclient.info 下载地址: 链接: https://pan.baidu.com/s/1mhD64vY 密码: nwmc

  5. CF219C hoosing Capital for Treeland

    D. Choosing Capital for Treeland time limit per test 3 seconds memory limit per test 256 megabytes i ...

  6. 基于html5 Canvas图表库 : ECharts

    ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值 ...

  7. python 字符串常用方法

    字符串常用方法 capitalize() String.capitalize() 将字符串首字母变为大写 name = 'xiaoming' new_name = name.capitalize() ...

  8. ImageView最大高度和宽度失效解决方案

    解决方案 做RecyclerView的 item 布局时,用到imageview ,可是图片按原始尺寸显示,不规范. 所以去google了一下imageview的宽高限制,就试了下maxheight/ ...

  9. 一天搞定CSS:支持IE的Layout布局--16

    1.BFC和Layout区别: BFC和Layout的作用是一样的,只是对浏览器的支持不同而已. BFC- -标准浏览器所具有的 Layout- -IE浏览器所具有的 BFC详解地址:http://b ...

  10. JSP/Servlet Web 学习笔记 DaySix —— EL表达式

    1)EL从scope中得到参数时可以自动转换类型,因此对于类型转换的限制更加宽松. 2)使用EL表达式,可以简化变量和对象的访问. 3)EL表达式必须以 ${XXXX} 来表示. 4)EL提供点(.) ...