getElementById
在分配給變量時返回空值。getElementById在分配給變量時返回空值
var element = document.getElementById("ul1");
var newelement = document.createElement("li");
newelement.innerHTML = "New";
element.appendChild(newelement);
getElementById
在分配給變量時返回空值。getElementById在分配給變量時返回空值
var element = document.getElementById("ul1");
var newelement = document.createElement("li");
newelement.innerHTML = "New";
element.appendChild(newelement);
當你把你的JavaScript將加載(並阻止body
的加載)頁面上的任何其他元素之前的文檔head
。
的你是什麼樣一個簡單的例子實際上做的確是這樣的:
<!-- script runs before element creation -->
<script type="text/javascript">
var element = document.getElementById('ul1');
</script>
<!-- this is after execution, where JS could not find the element but only now is the element actually created -->
<ul id="ul1"></ul>
爲了解決這個問題,你可以做幾件事情
<script>
標籤元素你想要的目標<script>
標籤放在</body>
標籤的正上方window.onload = function() { ... }
確保頁面在做任何事之前被加載。然後ul
元素將存在,你就可以添加您的李:)
在對Mathews的回答發表評論時,你說:「這是關於DOM未被加載的問題」你怎麼知道這個問題? OP的代碼段不提供這些信息。 – Teemu
我個人最喜歡的是將我的腳本放入一個鏈接文件中的(少數)函數中,然後在'
'之上調用它們。它更乾淨並利用緩存。 – abluejelly
@Teemu,因爲'document.getElementById'找不到你的元素的唯一原因是1)'ID字面上不存在(打字錯誤或刪除)'或2)'DOM沒有加載'。前者是一個非常基本的調試問題,後者根本不知道這是一件事情。 – abluejelly
你放置你的腳本標籤ul1' – Ramanlfc
你要麼是沒有與該ID的元素之後'或它不可用*** ***! – adeneo
請描述。 –