2

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

任何想法为什么会这样?

4

3 回答 3

2

这是一个长镜头,但尝试将 div 上的大写 ID 属性更改为小写 ID。我没有 IE,现在无法自己测试...对不起

于 2012-06-21T16:40:00.657 回答
1

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

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

于 2012-06-21T14:46:58.593 回答
0

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

于 2012-06-21T15:45:30.977 回答