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

时间:2014-04-17 15:05:26

标签: javascript innerhtml typeerror

使用Ajax ......我似乎无法弄清楚这里有什么问题。代码出错: objUserID.innerHTML = username; 。它认为变量用户名为空。 用户名确实包含数据,因为以下代码确认了这一点: console.log(“user:[”+ username +“]”); 有人可以解决这个问题吗?< / p>

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;
      }
   }
}

5 个答案:

答案 0 :(得分:9)

  

它认为变量用户名为空

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:0)

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

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

您可以看到代码有效。但是这个元素并不适用于JavaScript。

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

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

所以解决这个问题的方法是,改变你传递给方法的ID参数。

答案 3 :(得分:0)

实际上这是使用以下代码进行的加载问题检查。

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

答案 4 :(得分:0)

实际上,这个错误也可以通过调用此document.getElementById("#content-content").innerHTML=output;

来引起

而不是像这样

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