GetElementById 在 IE 中返回 null

GetElementById Returning Null In IE

本文关键字:返回 null IE GetElementById      更新时间:2023-09-26

在下面的函数中,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 就会设置。但是如果我在我们的开发服务器上运行此代码,即看不到该元素。

任何想法为什么会这样?

这是一个很长的机会,但请尝试将div 上的大写大小写 ID 属性更改为小写 ID。我没有IE,现在无法自己测试...不好意思

如果你在 DOM 中有多个具有相同ID的元素,Internet Explorer 中的document.getElementById函数返回 null,而在 Firefox 中,它返回第一个找到的对象。

请检查您的代码以确保页面上仅存在一个带有"父"id元素

您可以简单地保存引用并删除节点,而无需搜索它们。