Javascript ';div#u元素';为null或不是IE7中的对象
在这里,我在java脚本'div_element'中得到一个错误,该错误为null或不是对象。 我在下面给出了我的代码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中不起作用。我不明白这个脚本中到底出现了什么问题 提前感谢
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]
看看你是否必须在你的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);手稿