document.write和innerHTMLhtml
主要區別:document.write是直接將內容寫入頁面的內容流,會致使頁面所有重繪,innerHTML將內容寫入某個DOM節點,不會致使頁面所有重繪spa
下面舉兩個例子說明,第一個例子使用write()方法,第二個例子使用innerHTML3d
例子一:頁面有初始內容,點擊頁面中的按鈕向頁面中經過document.write()方法寫入內容,會發現原先的初始內容消失了,整個頁面只剩下了經過write()方法寫入的內容。緣由是整個頁面進行了重繪code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> 初始內容
<button onclick="fun()" >按鈕</button>
<script> function fun() { document.write("write內容"); } </script>
</body>
</html>
效果動態圖:htm
舉例二:頁面有初始內容,在初始內容後面給定一個節點,經過innerHTML向這個節點寫內容,初始內容不消失,經過innerHTML新增長的內容準確的顯示在節點位置blog
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> 初始內容<a id="p"></a>
<button onclick="fun()">按鈕</button>
<script> function fun() { document.getElementById("p").innerHTML="新增長的innerHTML內容"; } </script>
</body>
</html>
效果動態圖:ip