我有一个脚本,可以在按下当前元素时添加输入字段元素。当我使用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 DOES工作,appendChild没有。感谢。
答案 0 :(得分:4)
parent.appendChild()是一个等待DomNode对象的函数,你传递一个String,它无法工作......
尝试:
var d = document.createElement('div');
d.innerHtml = xmlhttp.responseText;
document.getElementById("org_div1").appendChild(d);
答案 1 :(得分:0)
AppendChild需要一个对象,其中innerHTML使用String。由于您的服务器返回部分HTML,因此这只适用于innerHTML。