0
我的JavaScript代码应该使用AJAX接收数据并将其显示在名为“txtHint”的DIV中。然而,这是我得到的错误,当代码执行(我用的是内置的Safari中调试器):JavaScript无法识别HTML中的元素
TypeError: Result of expression 'document.getElementById("txtHint")' [null] is not an object.
下面是代码:
function showItem(str)
{
if (str=="")
{
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)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getitem.php?q="+str,true);
xmlhttp.send();
}
现在我得到: 类型错误:表达式'el'[undefined]的结果不是一个对象。
这是否表示我的元素不存在?
请发布您的标记。 – jwueller 2010-11-13 00:57:51
你在DOM完成加载后运行这个吗?如果不是,你正在尝试获取“txtHint”,然后getElementById(“txtHint”)将返回null。这可能适用于ajax请求中的回调,因为它是异步的,但是如果str ==“”,它会立即发生 – 2010-11-13 01:01:38
如何查看DOM是否未完成,并且我的div尚未“注册”? – Parker 2010-11-13 01:08:43