为啥即使显示正确,在获取 nodeValue 时 null 仍会不断返回?
Posted
技术标签:
【中文标题】为啥即使显示正确,在获取 nodeValue 时 null 仍会不断返回?【英文标题】:Why does null keep coming back when getting nodeValue even though it displays properly?为什么即使显示正确,在获取 nodeValue 时 null 仍会不断返回? 【发布时间】:2011-11-09 07:04:18 【问题描述】:这让我发疯了。我正在通过 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();
,
【问题讨论】:
为什么不直接使用innerHTML?所以updatedTextHere.innerHTML = currentText.innerHTML;不知道为什么它不起作用。真奇怪。 这将有助于查看您用于创建此元素的 ajax 方法。 我更新了我的帖子,其中包含插入 Ajax 后如何调用它的示例。 【参考方案1】:您遇到的问题是firstChild
不是currentText
的节点。您的 nodeValue
没有价值,因为它不存在。您应该改用innerHTML
或textContent
。
更改为...
updatedTextHere.innerHTML = currentText.firstChild.textContent; // or innerHTML
【讨论】:
谢谢,但我不知道如何纠正它,因为没有办法将回调传递给我的 JS Lib for Ajax 中的方法。你能看到用我上面提供的更新代码修复它吗? 实际上在查看了您更新的示例之后,您的范围很好。有关您的解决方案,请参阅上面我修改后的答案。以上是关于为啥即使显示正确,在获取 nodeValue 时 null 仍会不断返回?的主要内容,如果未能解决你的问题,请参考以下文章
即使正确刷新视图,为啥 NavigationLink 不会自动推送下一个控制器?
ManifestStaticFilesStorage - 即使 staticfiles.json 显示正确的映射,仍会获取旧的静态文件