2

以下の関数では、chld は IE でのみ null です。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 はまだ null です

var chld1 = document.getElementById("dv1");

アップデート:

コード自体に問題はないようです。同じコードを実行すると、ローカルコードの chld が設定されます。しかし、このコードを開発サーバーから実行すると、要素が表示されません。

なぜこれが考えられるのでしょうか?

4

3 に答える 3

2

これは長い道のりですが、divの大文字のID属性を小文字のIDに変更してみてください。私はIEを持っていないので、今は自分でテストできません...ごめんなさい

于 2012-06-21T16:40:00.657 に答える
1

IDDOM に同じ要素が複数ある場合document.getElementById、Internet Explorer の関数は null を返し、Firefox では最初に見つかったオブジェクトを返します。

idコードをチェックして、 「親」を持つ要素が 1 つだけページに存在することを確認してください

于 2012-06-21T14:46:58.593 に答える
0

参照を保存し、検索せずにノードを削除するだけです。

于 2012-06-21T15:45:30.977 に答える