这让我发疯。我正在通过Ajax将代码插入页面。插入代码后,我正在运行一个函数以获取一个DIV的文本并将其显示在页面上的另一个位置。

有人可以告诉我为什么即使文本在页面的其他位置正确显示时,为什么我仍会收到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>


更新:

外观如下:

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();
},

最佳答案

您遇到的问题是firstChild不是currentText的节点。您的nodeValue没有值,因为它不存在。您应该改用innerHTMLtextContent

改成...

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

09-18 03:08