思路:当点击按钮的时候,就会自动的创建一个li添加到ul里面。
首先使用createElement创建li,然后把文本域里面的值通过.value赋值给li(注:此处是内容的赋值,即使把text里面的内容赋值给li里面作为内容),最后将创建的元素进行添加即可。
(如果想要新的留言在已有的后面显示使用appendChild,如果想要前面显示就用insertBefore)
删除元素就是文本域里面的值赋值给li的时候,多添加一个删除链接。首先需要把所有的链接获取过来,当我们点击当前链接的时候,删除当前链接所在的li即可。
补:阻止链接跳转需要添加javascript:;(好处在于地址栏不会发生改变)
注:当使用for循环去取到每一个元素的时候,为其添加事件不要忘记在后面写上[i],如as[i](╭(╯^╰)╮老忘。。。)
<!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;
}
textarea {
width: 200px;
height: 100px;
margin-top: 20px;
margin-left: 50px;
}
li {
list-style: none;
width: 300px;
padding: 5px;
background-color: pink;
font-size: 14px;
margin: 15px 50px;
}
li a {
float: right;
}
</style>
</head>
<body>
<textarea name="" id=""></textarea>
<button>发布</button>
<ul></ul>
<script>
var btn = document.querySelector("button");
var text = document.querySelector("textarea");
var ul = document.querySelector("ul");
btn.onclick = function() {
if (text.value == "") {
alert("您没有输入内容");
return false;
} else {
//创建元素
var li = document.createElement("li");
//现有li才能赋值
li.innerHTML = text.value + "<a href='javascript:;'>删除</a>";
//添加元素
ul.insertBefore(li, ul.children[0]);
//删除元素 删除的是当前链接的li 他的父亲
var as = document.querySelectorAll("a");
for (var i = 0; i < as.length; i++) {
as[i].onclick = function() {
//node.removeChild(child)删除的是li 当前a所在的li->this.parentNode
ul.removeChild(this.parentNode);
};
}
}
};
</script>
</body>
</html>