您的位置:首页 > Web前端 > JavaScript

JS实现简易留言板(节点操作)

2020-03-17 12:04 309 查看

本文实例为大家分享了JS实现简易留言板的具体代码,供大家参考,具体内容如下

今天的案例主要是对节点进行操作

创建节点、添加节点、删除节点以及为节点添加内容的操作。 

就是一个简单的留言板功能,可以发布留言,删除留言。

主要思路:两个鼠标点击事件――点击发布按钮事件和点击删除按钮事件

发布按钮事件:首先在文档中创建li节点。然后第二步,先把文本域中的内容获取出来赋给li,这里要注意,文本域是表单元素,获取表单元素的内容是使用表单的特有属性value,要与普通元素获取内容的innerHTML进行区分;再把删除链接添加到li中,利用字符串拼接的方式。最后把li节点添加到ul中,添加的方式有两种,是直接添加到ul列表项的末尾,也可以添加到指定位置。这里我是选中插入到ul列表的最前面。

删除按钮事件:点击删除按钮的事件是在把创建的li添加到ul中之后定义的。删除的操作主要是要弄清除是父节点元素删除子节点元素。在这里点击删除链接,删除的是当前被点击的按钮所在的li。li是删除连接的父节点元素。

分析永远比敲代码重要。要先分析,再去敲代码,实现需求。

先看效果图吧

默认是没有任何内容的

在文本域中输入,点击发布,可以发布留言,如果发完想删除,可以点击里面的删除按钮,删除留言

删除操作后: 

JS代码:

<script>
// 点击发布,会把文本域中的内容发布到ul中
// 点击删除,会删除留言
// 1.获取事件源 文本域 按钮 文本域
var text = document.querySelector('textarea');
var btn = document.querySelector('button');
var ul = document.querySelector('ul');
// 2.注册点击事件
btn.onclick = function () {
// 首先会创建一个li 并把文本域的内容给li 再把li添加到ul中
var li = document.createElement('li');
if (text.value == '') {
alert('您没有输入内容')
} else {
// 文本域的值 value
// 增加一个删除留言的按钮
li.innerHTML = text.value + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" >删除</a>';
ul.insertBefore(li, ul.children[0]); // 把最新的发布放到最前面
// ul.appendChild(li);

// 3.注册删除点击事件
var removeBtn = document.querySelectorAll('a');
for (var i = 0; i < removeBtn.length; i++) {
removeBtn[i].onclick = function () {
ul.removeChild(this.parentNode);
}
}
}
}
</script>

全部代码:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>留言板</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;
}

li a {
float: right;
}
</style>
</head>

<body>
<textarea name="" id=""></textarea>
<button>发布</button>
<ul>

</ul><script>
// 点击发布,会把文本域中的内容发布到ul中
// 点击删除,会删除留言
// 1.获取事件源 文本域 按钮 文本域
var text = document.querySelector('textarea');
var btn = document.querySelector('button');
var ul = document.querySelector('ul');
// 2.注册点击事件
btn.onclick = function () {
// 首先会创建一个li 并把文本域的内容给li 再把li添加到ul中
var li = document.createElement('li');
if (text.value == '') {
alert('您没有输入内容')
} else {
// 文本域的值 value
// 增加一个删除留言的按钮
li.innerHTML = text.value + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" >删除</a>';
ul.insertBefore(li, ul.children[0]); // 把最新的发布放到最前面
// ul.appendChild(li);

// 3.注册删除点击事件
var removeBtn = document.querySelectorAll('a');
for (var i = 0; i < removeBtn.length; i++) {
removeBtn[i].onclick = function () {
ul.removeChild(this.parentNode);
}
}
}
}
</script>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js 留言板