2013-02-23 47 views
0

我正在研究一個簡單的JavaScript代碼,我不知道它不起作用。 請告訴我,如果你知道這一點。Javascript代碼不工作?告訴我爲什麼

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function displayText(){ 
var xa = document.getElementById('abcd').innerHTML; 
xa+= 'asdf'; 
} 

displayText(); 
</script> 
</head> 
<body> 
<div id="abcd"></div> 
</body> 
</html> 

回答

0

在代碼運行主體(包括你的div)的時間尚未解析。 getElementById('abcd')當時沒有找到任何東西。

無論你的腳本元素移動到身體的末尾,以便它運行後,身體已經被解析,或者從onload處理程序調用你的displayText()功能。

(如果你打算在xa新值顯示在同一領域,你需要將它與document.getElementById('abcd').innerHTML = xa寫回的元素。)

5

innerHTML返回的當前內容的String元素,而不是它的指針。所以用這個來代替:

function displayText(){ 
    document.getElementById('abcd').innerHTML += 'asdf'; 
} 

function displayText(){ 
    var el = document.getElementById('abcd'); 

    var xa = el.innerHTML; 
    xa += 'asdf'; 

    el.innerHTML = xa; 
} 

而且你不能調用函數,你指的是實際創建的元素之前。所以移動身體標籤底部的呼叫。

<!-- .... --> 
<script> 
    display(); 
</script> 
</body> 
相關問題