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