2011-03-08 107 views
0

以下是我的JavaScript程序。我正在嘗試獲取父div標記的所有子標記,但是當我運行程序document.getElementById('abc')時返回null。javascript document.getElementById不工作

function init(){ 
//    currentDiv = document.getElementById("intro"); 
       alert("working"); 
       count = 0; 
       divs = document.getElementById('abc').getElementsByTagName("div"); 

       alert("HI " + divs) 
       currentDiv = divs[count]; 
       nextDiv = divs[count + 1] 
       count = count + 1; 
      } 

window.onload = init(); 

以下是我div標籤定義:

<div id='abc'> 
<div></div> 
</div> 

感謝。

+0

您正在使用哪種瀏覽器? – CarlosZ 2011-03-08 15:07:59

回答

9

的問題是在這條線:

window.onload = init(); 

您正在運行init並設置返回值的window.onload值。我的猜測是代碼在DOM準備好之前(即在div存在之前)正在執行。

試試這個:

window.onload = init; 
0

我建議你開始使用jQuery代替,那麼你有更強大的工具,這種DOM搜索/遍歷

+1

Jquery很棒。但要讓人們有機會學習如何自己做事。這是一個很好的JavaScript練習。 – Bakudan 2011-03-08 15:12:18

+0

同意 - 對一個點。學習基礎知識是很棒的,但最終所有小項目都會變得更大,當這個時候你不想擁有太多本土的基本代碼。 – 2011-03-08 15:14:53

+0

這不回答這個問題。這應該是一個評論。 – 2011-03-08 15:20:06

0
<body onload="init()"> 
    <div id='abc'> 
     <div></div> 
    </div> 
</body> 

這可能解決您的問題

+0

喲!請將代碼保留在HTML之外。過去十年,HTML中的「on *」屬性。 – 2011-03-08 15:19:38

+0

haha​​hah那麼和window.onload = init之間有什麼區別? – savruk 2011-03-08 15:22:14

+0

@savruk - 這只是良好的編碼習慣。你不應該得到一個downvote,雖然 – Sid 2011-03-08 15:28:00

相關問題