document.write和innerHTML
主要區別:document.write是直接將內容寫入頁面的內容流,會導致頁面全部重繪,innerHTML將內容寫入某個DOM節點,不會導致頁面全部重繪
下面舉兩個例子說明,第一個例子使用write()方法,第二個例子使用innerHTML
例子一:頁面有初始內容,點擊頁面中的按鈕向頁面中通過document.write()方法寫入內容,會發現原先的初始內容消失了,整個頁面只剩下了通過write()方法寫入的內容。原因是整個頁面進行了重繪
<!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>
效果動態圖:
舉例二:頁面有初始內容,在初始內容后面給定一個節點,通過innerHTML向這個節點寫內容,初始內容不消失,通過innerHTML新增加的內容准確的顯示在節點位置
<!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>
效果動態圖: