我正在尝试为Google地图创建一个信息窗口,并且需要生成一个动态表单来显示信息。
以下脚本生成一个错误,该错误称为“ No_found_err:DOM异常8”:
//create objects for HTML elements
var inputElement1 = document.createElement("input");
var inputElement2 = document.createElement("input");
//assign different attributes to the element
inputElement1.setAttribute("type", "text");
inputElement1.setAttribute("id", "poiName");
inputElement2.setAttribute("type", "textarea");
inputElement2.setAttribute("id", "poiDesc");
//create style tag, atrributes and values
//add css style to head tag and define classname for HTML "desctag" element
var cssNode = document.createElement("style");
cssNode.setAttribute("type", "text/css");
cssNode.style.cssText = ".cssClass {vertical-align: text-top; width: 250px; height: 150px }";
document.getElementsByTagName("head")[0].appendChild("cssNode");
document.getElementById("poiDesc").className = "cssClass";
var formString = "<b>Enter location details:</b>
<p>Name: " +
" " + inputElement1 + "<br>Description: " + inputElement2 +
"<p><center>" + "<input type='button' id='saveBtn' value='Save' onclick='savePOI()'>
</center>";
//insert values into the form elements
document.getElementById("poiName").value = locList[i].name;
**document.getElementById("poiDesc").value = locList[i].desc;**
此错误出现在最后两行之间。这是否意味着尚未创建标签ID“ poiName”和/或“ poiDesc”?
我该如何解决以上问题?
谢谢。
最佳答案
document.getElementsByTagName("head")[0].appendChild("cssNode");
应该是document.getElementsByTagName("head")[0].appendChild(cssNode);
注意cssNode
没有被引用,您传递了一个字符串来追加Child而不是节点。inputElement1
和inputElement1
是不是字符串的元素,因此将它们附加到html字符串不会产生所需的结果。另外,您永远不会将它们或html字符串添加到dom中,因此document.getElementById
将无法找到它们。