2013-10-09 167 views
0

請,我需要幫助......這是我的代碼:錯誤:遺漏的類型錯誤

<h2 class="title" id="ti"><span class="subtitle" id="sub"></span></h2> 

document.getElementById('ti').innerHTML = "hello"; 
document.getElementById('sub').innerHTML = "my word"; 

上ID:ti工作正常,但在ID:sub回到我這樣的錯誤:

"Uncaught TypeError: Cannot set property 'innerHTML' of null" 

我會感激一些幫助;)

PS:如果我沒有測試的document.getElementById( '鈦')的innerHTML = 「你好」 時,的document.getElementById( '子')的innerHTML =「我字「工作正常

回答

0

正如@Quentin告訴你的,你試圖訪問一個不存在的id「sub」。

有關問題的soluction,可以是:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title></title> 
    </head> 
    <body> 
     <h2 class="title" id="ti"> 
     </h2> 

     <script type="text/javascript"> 
      var parent = document.getElementById('ti'); 
      var new = document.createElement("span"); 
      new.className = "subtitle"; 

      parent.innerHTML = "Hello"; 

      new.innerHTML = "My Word"; 
      parent.appendChild(new); 
     </script> 
    </body> 
</html> 
+0

謝謝@PSantos ...這正是我在說的...;) – user2647038

6

您將id爲sub的範圍替換爲文本hello。該跨度不再存在,因此當您嘗試獲取它時,您將獲得null

+0

正確的,但如果我沒有測試的document.getElementById( '鈦')的innerHTML = 「你好」 時,的document.getElementById( '子')。 .innerHTML =「我的單詞」正常工作.... – user2647038

+0

@ user2647038 - 爲什麼「正確*但*」?我說你的問題是你用「你好」來代替跨度,*顯然*如果你不這樣做,那麼你就再也沒有問題了。 – Quentin

+0

你是對的...但我想要一個解決方案代碼,而不是解決方案「theoric」 – user2647038