我有两个输入,文本区域(姓名+评论)和提交按钮。Onclick应该发布来自输入和文本区域的文本。我使用appendchild(),但需要调用textarea。1.我应该怎么做? 2.删除按钮删除所有帖子,但我只需要删除最后一个帖子。那么这是怎么可能的呢?谢谢你的建议。
下面是代码:
<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>发布于 2014-07-31 21:03:38
问题是因为你说在有帖子的时候删除最后一篇。
只需将此代码放在restore中。它将删除最后一个子对象一次。
function restore() {
var oneChild;
var mainObj = document.getElementById("myDiv");
oneChild = mainObj.lastChild;
mainObj.removeChild(oneChild);
}发布于 2014-07-31 21:17:13
要解决附加问题,请执行以下操作:
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);
}
}https://stackoverflow.com/questions/25059513
复制相似问题