Javascript 添加一个<;br>;或<;p>;使用createElement

Javascript 添加一个<;br>;或<;p>;使用createElement,javascript,dom-manipulation,createelement,Javascript,Dom Manipulation,Createelement,如何在表格前后添加createElement(br)?我用doc.body.appendChild试过(p)在最后,但什么也没发生。我不知道我必须在哪里写appendchild function insertBlock(border) { var doc = document.getElementById("frame").contentWindow.document; var p = doc.createElement("br");

如何在表格前后添加
createElement(br)
?我用
doc.body.appendChild试过(p)在最后,但什么也没发生。我不知道我必须在哪里写
appendchild

function insertBlock(border) 
{       
    var doc = document.getElementById("frame").contentWindow.document;
    var p = doc.createElement("br");            

    var range = doc.getSelection().getRangeAt(0);
    myParent=document.getElementById("frame").contentWindow.document.body;
    if (border == true)
    {
        myTable=document.createElement("table");
        myTable.setAttribute("style","border: 1px solid #000000;");
    }
    else
    {
        myTable=document.createElement("table");
    }
    // IE5, IE6 benoetigen unbedingt tbody-Element
    myTBody=document.createElement("tbody");
    myRow=document.createElement("tr");

    myCell=document.createElement("td");

    myText=document.createTextNode("Die erste Zelle");
    myCell.appendChild(myText);
    myRow.appendChild(myCell);

    myCell=document.createElement("td");
    myText=document.createTextNode("Die zweite Zelle");
    myCell.appendChild(myText);
    myRow.appendChild(myCell);
    myTBody.appendChild(myRow);
    myTable.appendChild(myTBody);
    myParent.appendChild(myTable);

    range.insertNode(myTable);

}   
应该在这里:

myParent.appendChild(p);
myParent.appendChild(myTable);
myParent.appendChild(p.cloneNode());
请注意,第二个是克隆。当它不是。只会添加第二个。(不能添加元素两次)

当然,您也可以添加两个不同的对象

myParent.appendChild(p);
myParent.appendChild(myTable);
myParent.appendChild(p2);
或不带任何变量:

myParent.appendChild(doc.createElement("br"));
myParent.appendChild(myTable);
myParent.appendChild(doc.createElement("br"));
试试这个:

myTable.insertAdjacentHTML('afterend','<br />');
myTable.insertAdjacentHTML('beforebegin','<br />');

你是说?如果你这样做是为了分隔元素,那么你肯定采取了错误的方法。您应该考虑使用CSS添加边距来实现这一点<代码>
应该成为过去。此外,有了大量的DOM操作,我还将尝试查看一个模板库,如Handlebar。也就是说,如果你看代码中的注释,它们的目标是IE5,这本身已经是过去的事情了。但这两个br最终会相加,为什么?myParent=document.getElementById(“框架”).contentWindow.document.body;我的父母和孩子(p2);最后是同一个myParent.appendChild(p);是否在追加表之前追加
?你有没有检查过p和p2是否已经设置好?你有联机的地方吗?add是在结束之后,而不是在开始之前。你想在结束之后和开始之前添加它吗?我试过了,但我只在表的末尾得到了break,哪一个会这样做?因为在编辑的答案中,在表格之后和之前添加
var p = doc.createElement("br");            
myParent.insertBefore(p,myTable);
myParent.insertBefore(p.cloneNode(),myTable.nextSibling);