这让我发疯。我正在通过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
没有值,因为它不存在。您应该改用innerHTML
或textContent
。
改成...
updatedTextHere.innerHTML = currentText.firstChild.textContent; // or innerHTML