繁体   English   中英

未捕获的TypeError:无法设置null的属性'innerHTML'

[英]Uncaught TypeError: Cannot set property 'innerHTML' of null

使用Ajax ......我似乎无法弄清楚这里有什么问题。 代码出错: objUserID.innerHTML = username; 它认为变量username是null。 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;
      }
   }
}

它认为变量username是null

假。 它告诉你它无法访问null的属性innerHTML 换句话说, objUserID为null,并且您无法访问它的属性。

换句话说,你的元素不存在。

如果您遇到此问题,可能是因为您已在其他所有内容之前将脚本标记放在body标记的顶部。 您希望将脚本标记放在body标记的底部。

这意味着找不到元素或对象。 它不存在。

这是一个小提琴: http//jsfiddle.net/afzaal_ahmad_zeeshan/cF6Bh/

你可以看到代码有效。 但是该元素不适用于JavaScript。

确保元素存在。 要么你需要确保字符是正确的或类似的东西。

document.getElementById("objectId").innerHTML = "Text";

因此,解决这个问题的方法是,更改传递给方法的ID参数。

实际上这是一个加载问题检查与以下代码。

setTimeout(function(){ 
  xYzFunction();    
}, 3000 )

实际上这个错误也可以通过像这个document.getElementById("#content-content").innerHTML=output;一样调用引起document.getElementById("#content-content").innerHTML=output;

而不是像这样

document.getElementById("content-content").innerHTML=output;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM