由於某種原因,這種情況非常模糊。有時它的工作有時不是。相同的代碼行,對於同一父代下的不同「myid」,行 -getElementByID()。parentNode返回null
document.getElementById("myid").parentNode
返回null。
我確定元素「myid」不是根元素,它的父元素是需要返回的DIV。我正在使用Firefox 3.6.10版本。
任何人都可以提出任何理由,爲什麼會發生這種情況?
編輯:這裏的「myid」是某種文本框或任何其他控件元素。但是父節點總是DIV。我們添加的任何控件總是包裝在DIV下。所以基本上當屏幕上的東西刷新時,我們得到父節點並替換innerhtml。 innerhtml可以是任何東西。下面給出
是我的HTML -
<div style="height: 334px; width: 769px; position: relative;">
<span style="display: inline-block; height: 13px; width: 61px; position: absolute; left: 393px; top: 84px;" bizappid="System856UserGroupAppPoint156d5elabel300" tabindex="-1" id="System856UserGroupAppPoint156d5elabel300">User Group</span>
<input type="text" style="height: 20px; width: 221px; position: absolute; left: 503px; top: 77px;" bizappid="System856UserGroupAppPoint156d5etextBox190" class="formtextbox" tabindex="400" id="System856UserGroupAppPoint156d5etextBox190" readonly="readonly" name="System856UserGroupAppPoint156d5etextBox190">
</div>
在這個網站中,假設我正在爲ParentNode SPAN元素,但我沒有得到的輸入文本元素相同parentNode。還有一件更奇怪的事情是,我只是添加了一個檢查,說明getelementbyid是否爲空,然後檢查其父節點。如果parentNode不爲空,則進一步添加,然後執行刷新操作。現在控件不會進入parentNode非null狀態。
有沒有改變DOM的改變?你可以張貼更多的代碼,特別是。 HTML? – Nivas 2010-10-15 11:55:47
您是否執行了一些可能導致元素或其父元素死亡的JavaScript DOM操作? – 2010-10-15 11:55:59
@Nivas - DOM在「myid」元素的子級上發生了變化,但父級沒有變化。無法發佈任何代碼,但編輯了我的問題更多的細節。希望它可以幫助你。 – 2010-10-15 12:05:44