未捕获的类型错误:无法将属性“innerHTML”设置为 null
Posted
技术标签:
【中文标题】未捕获的类型错误:无法将属性“innerHTML”设置为 null【英文标题】:Uncaught TypeError: Cannot set property 'innerHTML' of null 【发布时间】:2014-06-01 22:31:19 【问题描述】:使用 Ajax... 我似乎无法弄清楚这里出了什么问题。错误发生在代码上:objUserID.innerHTML = username;。它认为变量 username 为空。 username 里面确实有数据,因为下面的代码证实了这一点:console.log("user: ["+username+"]"); 有人能弄清楚吗?
function actionBid(bidID,bidA,bidAction)
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest)
// code for IE7+, Firefox, Chrome, Opera, Safari
XMLHttpRequestObject = new XMLHttpRequest();
else if (window.ActiveXObject)
// code for IE6, IE5
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
if(XMLHttpRequestObject)
// ==== GET BID ====
if (bidAction == "getbid")
var objUserID = document.getElementById("curBidUser"+bidID);
var res = XMLHttpRequestObject.responseText;
var username = res.substring(0,res.indexOf(','));
console.log("user: ["+username+"]");
objUserID.innerhtml = username;
【问题讨论】:
您能具体说明一下您的问题是什么吗? 可能没有,作为回应 你能提供你的 HTML 吗? 为什么在发送 AJAX 请求之前访问XMLHttpRequestObject.responseText
?
你甚至发出 Ajax 请求吗???好像你错过了很多代码。
【参考方案1】:
它认为变量 username 为空
错误。它告诉您它无法访问null
的属性innerHTML
。换句话说,objUserID
为 null,您无法访问它的属性。
换句话说,你的元素不存在。
【讨论】:
你是对的,元素丢失了。谢谢【参考方案2】:如果您遇到此问题,可能是因为您将脚本标签放在正文标签的顶部,然后再放置其他所有标签。您想将脚本标签放在正文标签的底部。
【讨论】:
【参考方案3】:实际上这是使用以下代码检查加载问题。
setTimeout(function()
xYzFunction();
, 3000 )
【讨论】:
这不是一个有效的解决方案,用户不会等待 3 秒!!!【参考方案4】:表示找不到元素或对象。它不存在。
这是一个小提琴:http://jsfiddle.net/afzaal_ahmad_zeeshan/cF6Bh/
您可以看到,该代码有效。但是该元素不存在以供 javascript 处理。
确保该元素存在。您需要确保字符正常或类似的东西。
document.getElementById("objectId").innerHTML = "Text";
因此,对此的补救措施是,更改您传递给方法的 ID 参数。
【讨论】:
你是对的。缺少该元素。谢谢【参考方案5】:其实这个错误也可能是像这样调用document.getElementById("#content-content").innerHTML=output;
引起的
而不是这样
document.getElementById("content-content").innerHTML=output;
【讨论】:
以上是关于未捕获的类型错误:无法将属性“innerHTML”设置为 null的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:无法读取 null 的属性“innerHTML”
语法中的 innerHTML 错误不起作用;未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)[重复]
未捕获的 DOMException:无法使用 JQuery 设置“innerHTML”属性