2013-12-17 33 views
0

我正在嘗試一些基本的Javascript與選擇元素和標籤,但它給我的問題。 具體來說,我得到這個錯誤在開發者工具使用Chrome或Firefox:無法調用方法'getElementsByTagName'爲空

遺漏的類型錯誤:無法調用空的方法「的getElementsByTagName」

奇怪的是,當我輸入的JavaScript命令到控制檯在瀏覽器上,它的工作沒有問題。 (選擇包裝專區內的p標籤)

這是我的html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Test</title> 
    <link rel="stylesheet" href="default.css" /> 
    <script type="text/javascript" src="selection.js"></script> 
</head> 
<body> 
    <div id="wrapper"> 
     <p>Hello, this is a paragraph</p> 
     <p>Another one!</p> 
     <p>This is yet another paragraph</p> 
    </div> 
</body> 
</html> 

然後我的JavaScript:

window.onload = initP(); 

function initP() { 
    var para = document.getElementById('wrapper').getElementsByTagName('p'); 
} 

回答

1

嘗試:的

window.onload = initP; 

代替

window.onload = initP(); 

爲您所呼叫的功能,而不是分配給它。

+0

好吧,我感到很蠢。謝謝!這就是訣竅:) – Flexicon

+0

@ user3112167: - 不客氣! –

1

要調用的函數,而不是分配給它。

window.onload = initP(); 

必須

window.onload = initP; 

的缺點要連接事件的方式是,如果這個事情給registerd onload事件之前一樣,你將覆蓋它。最好使用element.addEventListener

+0

好吧,我覺得很蠢。謝謝!這就是訣竅:) – Flexicon