原理:

1.用户在留言框输入留言

2.利用textarea的value属性获取到用户输入的留言

3.动态创建一个li

4.将获取的留言打包成html存到li中

5.根据需要添加删除留言、统计留言数量等功能

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单的留言板</title>
<style type = "text/css">
*{
padding:0;
margin:0;
}
textarea {
width:320px;
height:80px;
background:whitesmoke;
font-size:16px;
}
span:hover {
cursor:pointer;
}
</style>
</head>
<body>
<h1>简单留言板</h1>
<div id = "box">
<!--通过js实现根据用户的输入动态创建一个存放用户留言的li,并且允许用户删除留言-->
</div>
<label>
<textarea id = "msg" rows = "5" cols = "42"></textarea>
</label>
<input type = "button" id = "btn" value = "留言">
<button id = "calc" onclick = calc()>统计</button>
</body>
<script type = "text/javascript">
var box = document.getElementById("box");
var ul = document.createElement("ul");
box.appendChild(ul);
var btn = document.getElementById("btn");
var msg = document.getElementById("msg");
var n = 0;
btn.onclick = function(){
if(msg.value === ""){
alert("请输入内容")
} else{
n++;
var li = document.createElement("li");
li.innerHTML = msg.value + "  "+"<span>X</span>";
var lis = document.getElementsByTagName("li");
if(n === 1){
ul.appendChild(li);
// 如果是第一条留言则用appendChild
}else{
ul.insertBefore(li,lis[0]);
// 最新的留言总在第一条显示
}
msg.value = "";
// 重置文本框
var span = document.getElementsByTagName("span");
for(var i = 0;i<span.length;i++){
span[i].onclick = function(){
ul.removeChild(this.parentNode);
n--;
}
}
}
};
function calc(){
alert("一共有"+n+"条留言")
}
</script>
</html>

最新文章

  1. WebService开发
  2. 第一个C语言编译器是怎样编写的?
  3. Javascript中的json操作
  4. 投影纹理映射(Projective Texture Mapping)
  5. Allegro设置十字大光标
  6. 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
  7. Sass入门:第四章
  8. WPF文本框只允许输入数字
  9. 1、搭建 maven 环境
  10. iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?
  11. 第1课:SQL注入原理深度解析
  12. 【LeetCode每天一题】Reverse Linked List(链表反转)
  13. Apple公司Darwin流式服务器源代码分析
  14. Try Before Choosing
  15. Clojure 学习入门(14)—— 循环控制
  16. 动态类型和匿名类型在asp.net webapi中的应用
  17. 笔记之分布式文件系统(DFS)
  18. JSTL 标签库 使用(web基础学习笔记十九)
  19. Unity获取文件夹下指定类型的文件数量
  20. Linux安装Java开发环境

热门文章

  1. mongodb学习-练习实例
  2. git异常
  3. Activity生命周期,切换,参数传递,bundle(包),值对象,Activity参数返回,Activity的启动模式
  4. 吴裕雄 python深度学习与实践(2)
  5. 学JS的心路历程-物件与原型(三)
  6. spark 学习_rdd常用操作
  7. 十分钟搞定pandas
  8. tensorflow降低版本
  9. Oracle监听程序未启动或数据库服务未注册到该监听
  10. /src/applicationContext.xml