这里我在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不明白这个脚本中究竟出现了什么问题。
先谢谢。
答案 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行)
尝试显示
你可以使用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);
}