案例分析
1、核心思路:点击按钮之后,就动态创建一个li,添加到ul里面。
2、创建li的同时,把文本域里面的值通过li.innerHTML赋值给li。
3、如果想要新的留言在后面显示就用appendChild,想要在前面显示就用insertBefore。
4、当我们把文本域里面的值赋值给li的时候,多添加一个删除的链接。
5、需要把所有的链接获取过来,当我们点击当前的链接的时候,删除当前链接所在的li。
6、阻止链接跳转需要添加javascript:void(0);或者javascript:;。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
li {
width: 200px;
height: 20px;
background-color: pink;
margin-top: 10px;
}
li a{
float: right;
}
</style>
</head>
<body>
<div>
<textarea name="" id="" cols="30" rows="10"></textarea>
<button>发布</button>
<ul></ul>
</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 {
var li = document.createElement('li');
li.innerHTML = text.value + "<a href='javascript:;'>删除</a>";
ul.insertBefore(li, ul.children[0]);
text.value = '';
var as = document.querySelectorAll('a');
for(var i=0;i<as.length;i++){
as[i].onclick = function(){
ul.removeChild(this.parentNode);
}
}
}
}
</script>
</body>
</html>