大家好,我正在尝试向我的网站添加一些 ajax 代码。我知道 php,但 ajax 对我来说是新的,所以我使用了 w3schools.com 上的示例并更改了其中的某些部分。当我使用我的脚本时,萤火虫给了我这个错误:
TypeError: document.getElementById(...) is null
。那么我做错了什么我不知道你能帮助我吗?这是我的代码:
function showOptionen(str)
{
if (str=="")
{
document.getElementById("Optionen").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)
{
//Here in this line is the error:
document.getElementById("Optionen").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","bezeichnungs-optionen.php?q="+str,true);
xmlhttp.send();
}
我检查了我的
bezeichnungs-optionen.php
,结果是:<option value="DELL Notebook">DELL Notebook</option>
,所以一切正常。
许多浏览器会拒绝
innerHTML
,从而导致无效标记。
由于您要返回
<option>
标签,请确保您的“Optionen”是 <select>
或 <optgroup>
标签。
您可以在页面加载后尝试调用函数 showOptionen(testStr) ,如下所示:
window.onload = function (){
showOptionen(testStr);
}
调用该函数时,该元素似乎不存在,因此可能尚未加载。
您始终可以使用 jQuery 库,它简化了许多 JavaScript 操作,包括 ajax。