传统方法:
document.write方法
<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代码混杂在一起,不是一种好的做法。
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>
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);