首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有两个输入的Appendchild(),并删除最新的帖子

带有两个输入的Appendchild(),并删除最新的帖子
EN

Stack Overflow用户
提问于 2014-07-31 20:59:29
回答 2查看 80关注 0票数 1

我有两个输入,文本区域(姓名+评论)和提交按钮。Onclick应该发布来自输入和文本区域的文本。我使用appendchild(),但需要调用textarea。1.我应该怎么做? 2.删除按钮删除所有帖子,但我只需要删除最后一个帖子。那么这是怎么可能的呢?谢谢你的建议。

下面是代码:

代码语言:javascript
运行
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2014-07-31 21:03:38

问题是因为你说在有帖子的时候删除最后一篇。

只需将此代码放在restore中。它将删除最后一个子对象一次。

代码语言:javascript
运行
复制
function restore() {
    var oneChild;
    var mainObj = document.getElementById("myDiv");
    oneChild = mainObj.lastChild;
    mainObj.removeChild(oneChild);
}
票数 1
EN

Stack Overflow用户

发布于 2014-07-31 21:17:13

要解决附加问题,请执行以下操作:

代码语言:javascript
运行
复制
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条件:

代码语言:javascript
运行
复制
function restore() {
  var oneChild;
  var mainObj = document.getElementById("myDiv");
  if (mainObj.childNodes.length > 0) {
    oneChild = mainObj.lastChild;
    mainObj.removeChild(oneChild);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25059513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档