1

現在の要素が押されたときに入力フィールド要素を追加するスクリプトがあります。私がinnerHTMLを使用するとき、それは現在のものを置き換えます、それは私が望むものではありません。したがって、appendChildは追加する必要があり、置き換える必要はないと考えましたが、機能しません。これが私のスクリプトです。

<script type="text/javascript">
function addfile()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("org_div1").appendChild = xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","addfile.php");
xmlhttp.send();
}
</script>

そして私のhtmlコンテンツ。

<div id="org_div1" class="file_wrapper_input">

                        <input type="hidden" value="1" id="theValue" />
<input type="file" class="fileupload" name="file1" size=
"80" onchange="addfile()" /></div>

そして私のaddfile.phpファイル。

    var i=0;
        var ni = document.getElementById('org_div1');
        var numi = document.getElementById('theValue');
        var num = (document.getElementById('theValue').value -1)+ 2;
        numi.value = num;
        var divIdName = num;
</script>
<input type="file"  class="fileupload" size="80" name="file' + (num) + '" onchange="addfile()" />;

何か入力はありますか?繰り返しますが、innerHTMLは機能しますが、appendChildは機能しません。ありがとう。

4

2 に答える 2

5

parent.appendChild()はDomNodeオブジェクトを待機している関数であり、文字列を渡していますが、機能しません...

試す :

var d = document.createElement('div');
d.innerHtml = xmlhttp.responseText;
document.getElementById("org_div1").appendChild(d);
于 2011-07-18T16:34:51.027 に答える
0

AppendChildは、innerHTMLが文字列で機能するオブジェクトを想定しています。また、サーバーは部分的なHTMLを返すため、これはinnerHTMLでのみ機能します。

于 2011-07-18T16:37:17.520 に答える