参考文章:https://www.jianshu.com/p/f54897f689cf
传统方法
1.document.write方法
可以直接在需要插入的地方通过script标签插入
<body>
<script>
document.write("<p>This is inserted.</p>");
</script>
</body>
或者挪到外部函数中
<body>
<script>
insertParagraph("This is inserted");
</script>
...
<script>
function insertParagraph(text){
var str = "<p>"+text+"</p>"
document.write(str)
}
</script>
</body>
但是怎样都会使JavaScript代码和HTML代码混杂在一起,不是一种好的做法。
2.innerHTML属性
innerHTML即可以写入html代码,也可以读出所选节点下的html代码。通过innerHTML插入是直接替换掉了所选节点下面的全部内容。
<div id="insert">
<p>This will be overwritten.</p>
</div>
<script>
window.onload = function(){
var insertDiv = document.getElementById("insert")
alert(insertDiv.innerHTML)
insertDiv.innerHTML = "<p>This is inserted.</p>"
}
</script>
3.DOM方法
createElement方法:document.createElement(nodeName)
创建一个新元素,下面的代码就是创建了一个p元素。
var insertElement = document.createElement("p")
appendChild方法:parent.appendChild(child)
让此节点成为目标节点的子节点
var insertElement = document.createElement("p");
document.getElementById("insert").appendChild(insertElement);
creatTextNode方法:document.createTextNode(text);
和createElement方法类似,但是创建的是一个文本节点
var txt = document.createTextNode("New insert text.");
insertElement.appendChild(txt);
insertBefore方法: parentElement.insertBefore(newElement,targetElement);
将一个新元素插到一个现有元素的前面。其中parentElement是目标元素的父元素,newElement是你想插入的元素,targetElement你想插入到它前面的元素。
var newInsertElement = document.createElement("p");
insertDiv.insertBefore(newInsertElement,insertDiv);