前言
网页中留言和评论这个模块十分常见,今天我来写一个简易版的留言案例,为大家提供一点思路,很简单哦!
思路
添加留言核心思路:
1.点击按钮之后,就动态创建一个 li ,添加到 ul 里面。
2.创建 li 的同时,把文本域里面的值通 li. innerHTML 赋值给 li 。
3.如果想要新的留言后面显示就用 appendChild ,如果想要前面显示就用 insertBefore。删除留言核心思路:
1.当我们把文本域里面的值赋值给li的时候,多添加一个删除的链接。
2.需要把所有的链接获取过来,当我们点击当前的链接的时候,删除当前链接所在的 li 。
3.阻止链接跳转需要给a标签添加 javascript:void (0);或者 javascript:; 。
代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
li{
list-style: none;
width: 340px;
}
li a{
float: right;
text-decoration: none;
}
div{
width: 400px;
margin: 100px auto;
}
textarea{
width: 340px;
height: 100px;
resize: none; /*禁止textarea拖动改变输入框大小*/
}
</style>
</head>
<body>
<div>
<textarea name="" id=""></textarea>
<button>发布</button>
<ul>
</ul>
<a href="javascript:;"></a>
</div>
<script>
var text = document.querySelector("textarea");
var btn = document.querySelector("button");
var ul = document.querySelector("ul");
btn.onclick = function(){
if(text.value == ""){
alert("请输入内容!");
return false;
}else{
//1.创建元素
var li = document.createElement("li");
li.innerHTML = text.value + '<a href="javascript:;">删除</a>';
// 2.添加元素
ul.insertBefore(li,ul.children[0]);
}
// 3.删除元素 删除的是当前链接的li 即它的父亲
for (var i = 0;i<ul.children.length;i++){
var a = ul.children[i].children[0];
a.onclick = function(){
ul.removeChild(this.parentNode);
}
}
}
</script>
</body>
</html>