我有一个脚本,可以在按下当前元素时添加一个输入字段元素。当我使用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不能工作。谢谢。
parent.appendChild()是一个等待DomNode对象的函数,您正在传递一个String,它无法工作…
尝试:
var d = document.createElement('div'); d.innerHtml = xmlhttp.responseText; document.getElementById("org_div1").appendChild(d);