新手學習javascript,都習慣從document.write()入手,這個看起來易懂的語句,如果不好好用的話會給你的後面的學習帶來很大的麻煩
本來想着學習一下innerHTML的使用,於是我寫下了如下代碼:
<html>
<head>
<title>length</title>
<script type="text/javascript">
window.onload = function()
{
var txt="hello world";
document.write (txt.length);
var txt1=document.getElementById("d");
txt1.innerHTML="string";
}
</script>
</head>
<body>
<div id="d"></div>
</body>
</html>
這段看似沒有問題的代碼,卻能給我的程序帶來很大的隱患,通過瀏覽器測試的結果只有:11
這個只是hello world的字符串長度,我調試後發現:
程序一直找不到<div id="d"></div>,之前一直以爲是window.onload 拼寫之類的問題,
到後來才發現原來是這個坑爹的document.write()惹得禍,因爲這個語句重寫了document,此時你說接下來的去獲取<div id="d"></div>的語句能成功嗎?
在文檔加載結束後再調用document.write(),那麼輸出的內容就會重寫整個頁面。
document.write來輸出語句,這是我用了一個下午的時間得到的教訓。