2011-10-07 53 views
1

好吧,我一直沒有使用沒有JQuery的JavaScript很長一段時間了......但是,隨着編碼的發展,我必須在沒有它的權力的情況下爲我的項目做好準備不要確定提供了JQuery。使用(無框架)操作DOM javascript

我試圖做的是以下使用JQuery的事情:

$(document).ready(function() { 
    $('#myDiv').append('<ul><li>a</li><li>b</li></ul>'); 
}); 

現在到了非jQuery的事情,這就是我,我真的不明白爲什麼它不是」牛逼的工作:

<html> 
    <head> 
     <script type="text/javascript"> 
      function load() { 
       var s = '<ul><li>a</li><li>b</li></ul>'; 
       var element = document.getElementById("myDiv"); 
       element.innerHtml += s; 
      } 
     </script> 
    </head> 
    <body onload="load()"> 
     <div id="myDiv"></div> 
    </body> 
</html> 

事情是,沒有任何反應(該函數被調用,雖然)。是否在調用load()時DOM沒有準備好?我隱約記得這個代碼工作在Firefox 2.x IE7時代...

什麼是(一)正確的解決方案?

回答

9

這是innerHTML不是innerHtml。注意大寫HTML。改變它,它應該工作正常!這是一個working example

通過使用innerHtml,您只需在元素對象上創建一個新屬性並賦予其值s即可。

+0

哦****,我完全錯過了那一個,謝謝!需要。更多。咖啡。 :-) –

+0

沒問題:)總是有助於獲得一些額外的眼睛來看看一些東西!很高興我能幫上忙。 –

1
<html> 
    <head> 
     <script type="text/javascript"> 
      function load() { 
       var s = '<ul><li>a</li><li>b</li></ul>'; 
       var element = document.getElementById("myDiv"); 
       element.innerHTML += s; 
      } 
     </script> 
    </head> 
    <body onload="load()"> 
     <div id="myDiv"></div> 
    </body> 
</html> 

JS是區分大小寫的

0

我想你想element.innerHTML += s;