2010-11-14 168 views
0

爲什麼當我做一個alert的值(見下面)時,它會返回null?當存在具有該ID的元素時?爲什麼我的元素爲空?

// make reference to divs 
var countdown_timer = document.getElementById("countdown_timer"); 
var countdown_image = document.getElementById("countdown_image"); 

// For element manipulation 

if (type == 'image') { 
    var element = countdown_image; 
} else if (type == 'timer') { 
    var element = countdown_timer; 
} 

alert(countdown_timer); 

DIV的是如下..

<div class="timer" id="countdown_timer"></div> 
+5

確保在有關元素已被解析並插入到DOM之後調用'document.getElementById' * *。 – Gumbo 2010-11-14 20:37:02

+0

這表示感謝! :) – Brett 2010-11-14 20:43:01

+0

可能的重複[爲什麼jQuery或DOM方法如\'getElementById \'找不到元素?](http://stackoverflow.com/questions/14028959/why-does-jquery-or-a- dom-method-such-getelementbyid-not-the-element) – Bergi 2013-04-25 11:46:10

回答

2

這有可能是之前未加載你的頁面上的元素,從而選擇是沒有找到任何正在執行的JavaScript。您的javascript是否高於<body>標記?試着把它放在</body>之後,看看它是如何爲你工作的。

另一種解決方案是要做到:

window.onload = function() { 
//put all your JS here 
} 
+0

是啊.....我在頁面中調用javascript,在body部分,但在元素上面.....移動它低於他們&它的作品! :) – Brett 2010-11-14 20:43:35

1
onload = function() { 
// put you code here 
} 
0

您的來電document.getElementById需求是標記爲DIV之後。

<div class="timer" id="countdown_timer"></div> 
<script type="text/javascript"> 
var countdown_timer = document.getElementById("countdown_timer"); 
... 
</script> 

或者,您可以使用window.onload事件,這將是更好的方法。

+0

是的....我修好了,就在我看到你的答案去其他答案之前,哈哈:) – Brett 2010-11-14 20:45:43