Javascript ';div#u元素';为null或不是IE7中的对象

Javascript ';div#u元素';为null或不是IE7中的对象,javascript,jquery,jquery-ui,javascript-events,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 } 当我调试我的脚本时,它可以在其他浏览器(包括IE8)中正常工作。但它在IE7中不起作用。我不明白这个脚本中到底出现了什么问题 提前感谢

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

function showLoading(id) {
div_element = $("div#" + id)[0];
div_element.innerHTML = loading_anim; // Error in this line
}
当我调试我的脚本时,它可以在其他浏览器(包括IE8)中正常工作。但它在IE7中不起作用。我不明白这个脚本中到底出现了什么问题

提前感谢。

对jQuery对象使用
.html()
<代码>innerHTML适用于dom对象,但不适用于jQuery对象

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

我认为您没有使用jquery选择器选择任何内容(第2行)

展示

  • 身份证
  • “div#”+id
  • $(“div#“+id)
  • $(“div#“+id)[0]
您可以使用firebug javascript控制台或以下简单警报: 警报($(“div#“+id)[0])


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

我想,nic想显示一些加载GIF动画,我确认,nic必须对DOM对象使用jQuery
.html()
方法,tusar解决方案在IE6+浏览器上运行良好。另外(很明显,但无论如何)nic必须为脚本中的
loading_anim
变量分配一个值,比如:
var loading_anim=$('#loader').html()
在将其值赋给
div\u元素之前,首先,您不需要在jQuery前面加上标记名,除非在其他页面的其他元素上有其他id完全相同的元素

接下来,您的语句
div\u element.innerHTML=loading\u 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);

}

只是一个问题:如果
$('#'+id).html(加载动画),为什么要这样做
会更直观,因为您已经在使用jQuery?为什么您要先提取DOM元素,然后再将其转换为jQuery对象?当我在IE-7中警告div_元素时,我得到了未定义的值,而在其他浏览器中,我得到了div元素对象。所以我认为第二行$(“div#“+id)[0]中存在问题;嗯,我已经更新了答案。实际上,它应该是
$(“div#“+id”)
我对div和li元素有完全相同的id,所以我写了div#u元素=$(“div#“+id);手稿