'div_element'为null或不是IE7中的对象

时间:2012-04-18 07:51:33

标签: javascript jquery jquery-ui javascript-events

这里我在java脚本中遇到一个错误'div_element'是null或者不是对象。 我在下面给出了我的代码

function showLoading(id) {
div_element = $("div#" + id)[0];
div_element.innerHTML = loading_anim; // Error in this line
}

当我调试我的脚本以便它在包括IE 8在内的其他浏览器中工作正常。但它在IE 7中不起作用.i不明白这个脚本中究竟出现了什么问题。

先谢谢。

4 个答案:

答案 0 :(得分:0)

对jQuery对象使用.html()innerHTML适用于 dom 对象,它们不适用于jQuery对象。

function showLoading(id) {
    div_element = $("div#" + id);
    $(div_element).html(loading_anim); // Provided `loading_anim` is valid html element
}

答案 1 :(得分:0)

我认为你不用你的jquery选择器选择任何东西(第2行)

尝试显示

  • ID
  • “div#”+ id
  • $(“div#”+ id)
  • $(“div#”+ id)[0]

你可以使用firebug javascript控制台或这样的简单警告: alert($(“div#”+ id)[0]);

看看你是否必须在你的div上使用id或class(使用#或.selector)

答案 2 :(得分:0)

我想,nic想要显示一些加载器GIF动画,我确认,nic必须对DOM对象使用jQuery .html()方法,而tusar解决方案在IE6 +浏览器上运行良好。另外(很明显,但无论如何)nic必须在脚本中为loading_anim变量赋值,比如说:var loading_anim = $('#loader').html();,然后将其值赋给div_element

答案 3 :(得分:0)

首先,您不需要在jQuery前面添加标记名称,除非您在其他页面上的其他元素上有其他元素具有完全相同ID

接下来,您的陈述div_element.innerHTML = loading_anim; 正确。因此,唯一的解释是,在DOM中没有具有该ID的元素。

最后,因为你已经使用了jQuery,不需要混合本机JS和jQuery来创建一个看起来很脏的代码。

function showLoading(id) {

    div_element = $("#" + id);
    console.log(div_element); //check the console to see if it return any element or not
    div_element.html(loading_anim);

}