我有一项任务是在HTML和Javascript中创建类似评论框 如何使用按钮删除删除评论? 或者我应该在此任务中使用链表? 这是我的代码:
<html>
<body>
<div id='container'>
<textarea id='txt'></textarea><br/>
<button type='button' onclick="add()">Enter</button>
<div id='contents'></div>
</div>
<script>
function add(){
var txt= document.getElementById('txt').value;
var content= document.getElementById('contents');
var tes= '<hr/><span>'+txt+"</span><button type='button'>delete</button>";
content.innerHTML+=tes;
}
</script>
</body>
</html>
答案 0 :(得分:0)
要快速回答这个问题,如果你想坚持使用纯JavaScript,你可以使用他的父母从DOM中删除元素,看看这个 Remove element by id
P.S Don你不需要在某处存储你的意见的方法(数据库?)
P.S.2您应该避免在分配给变量的字符串中直接使用html标记。也许你应该看看网上的一些最佳实践(关于DOM操作,jQuery clone()方法等)
希望有所帮助
答案 1 :(得分:0)
在我看来,您并不担心持久存储您的数据。所以最快的解决方案是:
<script>
var arr = 1;
function del(comm_id){
var dom =document.getElementById(comm_id);
dom.parentNode.removeChild(dom);
}
function add(){
var txt= document.getElementById('txt').value;
var content= document.getElementById('contents');
var comm_id="comment"+arr;
var del_id="delete"+arr;
var tes= "<div id="+comm_id+">"+'<hr/><span>'+txt+"</span><button type='button' id="+ del_id + ">delete</button></div>";
content.innerHTML+=tes;
document.getElementById(del_id).setAttribute('onclick',"del('"+comm_id+"')");
arr++;
}
</script>
答案 2 :(得分:0)
为此,无需实施链接列表。你可以在javascript中使用Array。无需预先定义数组的大小。您可以在其中添加任意数量的元素。
要删除特定元素,您可以使用
array.splice(i, 1);
这将删除第i个元素。