【问题标题】:Uncaught TypeError: Cannot set property 'innerHTML' of null未捕获的类型错误:无法将属性“innerHTML”设置为 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 请求吗???好像你错过了很多代码。

标签: javascript innerhtml typeerror


【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      相关资源
      最近更新 更多