【发布时间】:2011-05-09 10:38:43
【问题描述】:
当我运行下面的代码时,Safari 的调试控制台告诉我:
TypeError: 表达式 'document.getElementById("txtHint")' [null] 的结果不是对象。
似乎在这一行抛出错误:
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
代码
function showItem(str)
{
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200 && xmlhttp.responseText!='')
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getitem.php?q="+str,true);
xmlhttp.send();
}
我不确定为什么会抛出这个错误。绝对有一个 ID 为“txtHint”的 DIV,但 safari 似乎无法正确运行此代码。我想我的问题是,这段代码有什么问题。
【问题讨论】:
-
这里有什么问题?听起来
ID没有元素。 -
console.log(document.getElementById('txtHint').length);说什么?
标签: javascript html ajax dom xmlhttprequest