在下面的函数中,chld 仅在 IE 中为空,在 Firefox 中,javascript 工作正常。
var div = document.createElement("div");
var divid = "dv" + num;
div.setAttribute("ID", divid);
div.setAttribute("value", num);
var _text = document.createElement("input");
_text.setAttribute("type", "text");
_text.setAttribute("id", "txtAsName" + num);
_text.setAttribute("name", "txtAsName" + num);
var lbl = document.createElement("label");
var _upload = document.createElement("input");
_upload.setAttribute("type", "file");
_upload.setAttribute("ID", "upload" + num);
_upload.setAttribute("name", "uploads" + num);
_upload.setAttribute("size", "80");
var hyp = document.createElement("a");
//hyp.setAttribute("style", "cursor:Pointer");
hyp.style.cssText='cursor:Pointer';
//hyp.setAttribute("onclick", "return RemoveDv('" + divid + "');");
hyp.onclick=function() {RemoveDv(divid);};
hyp.innerHTML = "Remove";
var br = document.createElement("br");
var _pdiv = document.getElementById("Parent");
div.appendChild(br);
div.appendChild(lbl);
div.innerHTML += ' ';
div.appendChild(_text);
div.innerHTML += ' ';
div.appendChild(_upload);
div.innerHTML += ' ';
div.appendChild(hyp);
_pdiv.appendChild(div);
……
这是删除功能
function RemoveDv(obj) {
var p = document.getElementById("Parent");
var chld = document.getElementById(obj);
p.removeChild(chld);
}
这是我要删除的 div 标签看起来的谎言。
<div align="left" id="Parent">
<div ID="dv1" value="1">
<div ID="dv2" value="2">
……
有趣的是,即使我“为了调试”添加了这行代码,chld1 仍然为空
var chld1 = document.getElementById("dv1");
更新:
代码本身似乎没有任何问题。如果我在 ie 中运行相同的代码,我的本地代码 chld 就会被设置。但是,如果我在我们的开发服务器上运行此代码,即看不到该元素。
任何想法为什么会这样?