Javascript 在表单提交中添加新段落无效

Javascript 在表单提交中添加新段落无效,javascript,dom,form-submit,Javascript,Dom,Form Submit,我试图在提交表单时通过javascript向我的dom/html/站点(我对html和js不熟悉)添加一个段落。这就是我到目前为止所做的: document.addEventListener('DOMContentLoaded',function() { var form = document.getElementById("form"); form.addEventListener("submit", add, false); }); function add(e) {

我试图在提交表单时通过javascript向我的dom/html/站点(我对html和js不熟悉)添加一个段落。这就是我到目前为止所做的:

document.addEventListener('DOMContentLoaded',function()
{
    var form = document.getElementById("form");
    form.addEventListener("submit", add, false);
});

function add(e)
{
    var para = document.createElement("p");
    var newText = document.createTextNode("new text");
    para.appendChild(newText);

    document.documentElement.lastChild.appendChild(para);
}
这一段似乎被添加了,当我点击submit按钮时,我可以在一瞬间看到“新文本”,但随后它立即消失。

这里有几点

  • 您的提交按钮导致页面重新加载,这意味着您的页面被有效地重置为刚刚加载的状态,请调用
    e.preventDefault()
    ,以阻止这种情况发生
  • 元素不应该是非
    标记的后代,并且您不能总是保证
    .lastChild
    将是
    。为此,最好使用
    document.body

  • “提交”按钮正在提交表单,导致重新加载页面。让添加函数do
    e.preventDefault()
    并返回false。因为页面已提交@RobG我改了,它还是不见了谢谢你,这把它修好了。我会在5分钟内接受,如果可以的话:)虽然正文将始终是HTML文档中的正文。;-)@RobG我对这些属性的存在感到震惊,一方面它们非常有用,因为你通常需要元素,另一方面我不喜欢假装没有任何其他类型的节点。。。你还漏掉了单词valid;)@PaulS.-无论标记是否有效,浏览器都将创建有效的HTML文档对象(当然对于XML不是这样)。;-)怪癖越来越少了…@RobG
    document.documentElement.appendChild(document.createElement('p'));document.documentElement.lastElementChild;//