2011-09-02 10 views
0

這使我瘋狂。我通過Ajax將代碼插入到頁面中。插入代碼後,我正在運行一個函數來獲取其中一個DIV的文本並將其顯示在頁面上的另一個位置。爲什麼在獲取nodeValue時null仍然會回來,即使它顯示正確?

有人能告訴我爲什麼我不斷收到JavaScript錯誤,指出currentText爲空,即使文本在頁面中的其他位置正確顯示?

var currentText = document.getElementById("current-text"), 
updatedTextHere = document.getElementById("updated-text-here"); 

updatedTextHere.innerHTML = currentText.firstChild.nodeValue; 

這是它抓住從文本值,這是通過Ajax插入到主網頁代碼:

<div id="current-text" class="hide">January 1, 2011</div> 

UPDATE:如何看起來

這裏的:

getDate = function() { 
    var currentText = document.getElementById("current-text"), 
    updatedTextHere = document.getElementById("updated-text-here"); 

    updatedTextHere.innerHTML = currentText.firstChild.nodeValue; 
}, 

htmlready = function() { 
    myDiv.innerHTML = xmlRequest.responseText; 
    getDate(); 
}, 
+0

爲什麼不直接使用innerHTML?所以updatedTextHere.innerHTML = currentText.innerHTML;不知道爲什麼它不工作。真奇怪。 – Gerben

+0

這將有助於查看您用於創建此元素的ajax方法。 – 65Fbef05

+0

我已更新我的帖子,其中包含插入Ajax後如何調用它的示例。 – Zoolander

回答

3

您遇到的問題是firstChild不是currentText的節點。您的nodeValue沒有值,因爲它不存在。您應該使用innerHTMLtextContent

更改爲...

updatedTextHere.innerHTML = currentText.firstChild.textContent; // or innerHTML 
+0

謝謝,但我不確定如何糾正它,因爲沒有辦法將回調傳遞到我的JS Lib for Ajax中的方法中。你能否看到用我上面提供的更新代碼修復它? – Zoolander

+0

實際上,在查看更新後的示例後,您的範圍很好。請參閱我的修改後的答案以獲取解決方案 – 65Fbef05

相關問題