Javascript 带有两个输入的Appendchild(),并删除最新发布
我有两个输入,文本区(姓名+评论)和提交按钮。Onclick应该从输入和文本区域发布文本。我使用appendchild(),但需要调用textarea。 1.我该怎么做? 2.按钮“删除”删除所有帖子,但我只需要删除最后一篇。那么这怎么可能呢? 谢谢你的建议 代码如下:Javascript 带有两个输入的Appendchild(),并删除最新发布,javascript,html,Javascript,Html,我有两个输入,文本区(姓名+评论)和提交按钮。Onclick应该从输入和文本区域发布文本。我使用appendchild(),但需要调用textarea。 1.我该怎么做? 2.按钮“删除”删除所有帖子,但我只需要删除最后一篇。那么这怎么可能呢? 谢谢你的建议 代码如下: <script type="text/javascript"> function append(form) { if (form.input.value) { var
<script type="text/javascript">
function append(form) {
if (form.input.value) {
var newItem = document.createElement("div");
newItem.appendChild(document.createTextNode(form.input.value));
document.getElementById("myDiv").appendChild(newItem);
}
}
function restore() {
var oneChild;
var mainObj = document.getElementById("myDiv");
while (mainObj.childNodes.length > 0) {
oneChild = mainObj.lastChild;
mainObj.removeChild(oneChild);
}
}
</script>
<form>Name:
<br>
<input type="text" name="input" />
<br />Comment:
<br>
<textarea type="text" name="textarea"></textarea>
<br />
<input type="button" value="Submit" onclick="append(this.form)" />
<input type="button" value="Delete" onclick="restore()" />
</form>
<div id="myDiv"></div>
函数附加(表单){
if(form.input.value){
var newItem=document.createElement(“div”);
appendChild(document.createTextNode(form.input.value));
document.getElementById(“myDiv”).appendChild(newItem);
}
}
函数还原(){
一个孩子;
var mainObj=document.getElementById(“myDiv”);
while(mainObj.childNodes.length>0){
oneChild=mainObj.lastChild;
mainObj.removeChild(独生子女);
}
}
姓名:
评论:
问题是因为你说的是当有帖子时删除最后一篇
仅将此代码放入还原。它将删除最后一个孩子一次
function restore() {
var oneChild;
var mainObj = document.getElementById("myDiv");
oneChild = mainObj.lastChild;
mainObj.removeChild(oneChild);
}
要解决您的问题,请执行以下操作:
function append(form) {
if (form.input.value) {
var newItem = document.createElement("div");
newItem.appendChild(document.createTextNode(form.input.value));
//add a line break and the text from textarea
newItem.appendChild(document.createElement("br"));
newItem.appendChild(document.createTextNode(form.textarea.value));
document.getElementById("myDiv").appendChild(newItem);
}
}
如果只想删除最后一项,则必须将while
循环转换为If
条件:
function restore() {
var oneChild;
var mainObj = document.getElementById("myDiv");
if (mainObj.childNodes.length > 0) {
oneChild = mainObj.lastChild;
mainObj.removeChild(oneChild);
}
}
您可以使用JSFIDLE…,但我只需要删除最后一个。哪一个?在尝试删除它之前,请检查以确保有最后一个孩子?即,将OP的while
替换为if