本文分享一个JavaScript的留言板添加留言、删除留言的小案例,内附详细代码分析、但不涉及数据库操作,只解析底层代码实现思路:

实现效果
运行代码界面:

输入留言进行添加:(最新的留言会在最顶部显示)

删除留言:(点击哪条则删除该条留言)

主要功能效果展示完毕,HTML和CSS样式这里不影响,下面直接上JS代码:
`<script>
// 获取所需元素对象
var text = document.querySelector(‘textarea’);
var btn = document.querySelector(‘button’);
var ul = document.querySelector(‘ul’);
// 注册事件
btn.onclick = function () { // 给发布按钮绑定点击事件
if (text.value == ‘’) { // 判断text.value是否为空,即用户是否有输入内容
alert(‘不能发布空内容哦!’);
return false;
} else { // 用户有输入内容则获取到该内容赋值给创建的元素li进行显示
// 1.创建元素
var li = document.createElement(‘li’);
li.innerHTML = text.value + “<a href='javascript:;' title='删除该留言'>删除</a>“; // 将用户输入的内容赋值给创建的li元素并且在后面添加一个a标签用于后续删除该留言
// 2.添加元素
// ul.appendChild(li); // 这样写留言是追加到后面显示的
ul.insertBefore(li, ul.children[0]); // 让新增的留言在最上面显示,即从下往上显示的顺序

  1. // 删除元素:删除的是当前a标签所在的li节点也就是它的父元素
  2. var as = document.querySelectorAll('a');
  3. for (var i = 0; i < as.length; i++) {
  4. as[i].onclick = function () {
  5. // 需要删除的li是a的父元素即this.parentNode;
  6. ul.removeChild(this.parentNode); // 删除ul里的li节点,而li是当前a标签的父节点,注意它们之间的关系
  7. }
  8. }
  9. }
  10. text.value = ''; // 最后将留言输入框中的内容清空方便再次留言
  11. }

</script>`
核心知识:
向页面添加元素节点:

我们想要给页面添加一个新的元素分两步:1.创建元素;2.添加元素

1.创建元素:element.createElement(‘创建的元素标签’);
2.添加元素:node.appendChild(child); // node是父级即添加在哪个父级元素之中,child是创建好的子级元素,注:这样的添加元素方式类似于数组中的push方法即在后面追加元素
添加节点到指定位置:(主要是添加到指定元素前面显示)
node.insertBefore(child, 指定元素); // “指定元素”指将child添加到哪个元素的前面,“指定元素”一定也是node的子元素

删除页面元素节点:
1 node.removeChild(child); // node是父元素,child是node中的一个子元素
主要实现思路:这里就是主要运用向页面添加节点和删除节点的功能,将两个功能各自绑定到不同的按键上,如将添加节点的功能给到“发布”按钮,将删除节点的功能给到“删除”按钮,即实现了这样一个简易版的留言板案例。详细解析建议结合JS代码,内含详细注释。

更多相关文章

  1. box-sizing、伪类选择器参数及媒体查询的应用
  2. 仿smzdm移动端首页
  3. 关于PHP5和PHP7中数组实现方式的比较总结
  4. js语法:解构赋值、dom元素的增删改、dataset,classList对象的使用
  5. 三分钟!意派Epub360制作高端H5邀请函
  6. 模态框与flex,grid思维导图
  7. HTML伪类、盒子模型学习与应用
  8. box-sizing的作用+伪类选择器的参数 an+b 的应用+媒体查询:@media
  9. 盒模型,伪类与媒体查询

随机推荐

  1. Android TabHost风格
  2. Sending and receiving broadcast messag
  3. android 让自己的app成为launcher
  4. Android短信发送和监控
  5. Android的简单的广播的例子
  6. Android 101 for iOS Developers
  7. Android 各种机型兼容问题
  8. Android: Runtime.exec()的陷阱
  9. Android(安卓)开发中的  AsyncTask 的
  10. android中比较两张图片的相似度