【问题标题】:Cannot set property 'innerHTML' of null in Jquery无法在 Jquery 中设置 null 的属性“innerHTML”
【发布时间】:2017-01-12 12:47:26
【问题描述】:

获取未捕获的类型错误:无法将属性“innerHTML”设置为 null。如何解决。

$(window).load(function() {
   document.getElementById("id_city").innerHTML = ('<option>Select a City</option>');
   var selected_state = $('#id_state').val();
   var selected_city = $('#selected_city').val();
   var data = 'state='+selected_state  + '&selected_city='+selected_city; 
   var url = $('#url').val();
   $.ajax({
     type:"POST",
     url:url,
     data:data,    // multiple data sent using ajax
     success: function (response) {
     document.getElementById("id_city").innerHTML=response;
    } 
  });  
});

【问题讨论】:

  • 确保id_city 正确且元素呈现在页面上

标签: javascript jquery html


【解决方案1】:

这个错误意味着在这一行:

document.getElementById("id_city").innerHTML

你有

document.getElementById("id_city") = null

请确保您有任何将 id 参数设置为“id_city”的标记

【讨论】:

    【解决方案2】:

    确保页面上有一个具有该 ID 的元素。如果可能,请分享 HTML 以获得更好的结果。

    示例:&lt;select id="id_city"&gt;&lt;/select&gt;

    【讨论】:

      【解决方案3】:

      错误行是 document.getElementById("id_city").innerHTML 原因可能是

      • 元素不在 html 中
      • 在元素绑定到 html 之前调用脚本

      尝试将脚本放在页面底部

      【讨论】:

      • 如果调用的脚本在$(window).load()内,脚本在页面上的位置应该没有关系,不是吗?
      【解决方案4】:

      你可以使用jquery method

      $("#id_city").html(response);
      

      【讨论】:

        【解决方案5】:
        document.getElementById("id_city").innerHTML=response;
        

        document.getElementById("id_city").html(response);
        

        $('#id_city').html(response);
        

        【讨论】:

        • 第二个不起作用,因为您在非 jquery 对象上应用 jquery 方法
        • 两种解决方案都不起作用。似乎找不到 ID 为“id_city”的元素。
        • 两种解决方案都是正确的。选择器可能有错误
        • .html 是 jQuery 的一部分,不能用于 getElementById 返回的元素,所以不,它们不都是正确的
        猜你喜欢
        • 1970-01-01
        • 2020-12-19
        • 2014-08-25
        • 2013-08-16
        • 2012-06-25
        • 2017-04-26
        • 1970-01-01
        • 2021-05-23
        • 1970-01-01
        相关资源
        最近更新 更多