Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
克隆表行并删除JavaScript中的值_Javascript_Clone_User Input - Fatal编程技术网

克隆表行并删除JavaScript中的值

克隆表行并删除JavaScript中的值,javascript,clone,user-input,Javascript,Clone,User Input,我有一组文本输入字段,当用户单击“添加”按钮时,我希望克隆这些字段。我的问题是,正在使用用户的输入克隆字段。使用Javascript,如何重置文本输入字段的值,以便在不克隆用户输入文本的情况下克隆这些字段 这是我的密码 <table width="766" border="0" cellspacing="0" cellpadding="0" id="albumTable"> <tr id="clone"> <td width="23

我有一组文本输入字段,当用户单击“添加”按钮时,我希望克隆这些字段。我的问题是,正在使用用户的输入克隆字段。使用Javascript,如何重置文本输入字段的值,以便在不克隆用户输入文本的情况下克隆这些字段

这是我的密码

<table width="766"  border="0" cellspacing="0" cellpadding="0" id="albumTable">  
    <tr id="clone">  
        <td width="230"><input type="text" name="dj_1" /></td>  
        <td width="230"><input type="text" name="affiliations_1" /></td>  
        <td width="230"><input type="text" name="rating_1" /></td>  
        <td width="230"><input type="text" name="comments_1" /><input type="hidden" name="count" value="1" class="count"/></td>
        <td width="286" style="position:absolute; top:110px; left: 670px;"><input name="button" type="button" id="Add" value="ADD ROW" onclick="addRow(this.parentNode.parentNode)"></td>
    </tr>
</table>

<script type="text/javascript">
    function addRow(r){  
        var root = r.parentNode;  
        var allRows = root.getElementsByTagName('tr');  
        var cRow = allRows[0].cloneNode(true)  
        var cInp = cRow.getElementsByTagName('input');  
        var countRow = cRow.getElementsByClassName('count');  

        for(var i=0;i<cInp.length;i++){
            cInp[i].setAttribute('name',cInp[i].getAttribute('name').replace(/\d/g,(allRows.length+1)))   
        }  
        for(var j=0;j<countRow.length;j++){
            countRow[j].setAttribute('value',countRow[j].getAttribute('value').replace(/\d/g,(allRows.length+1)))
        }  
        root.appendChild(cRow);  
    }  

    function shownames(){
        var allInp=document.getElementsByTagName('input');
        for(var i=0;i<allInp.length;i++){
            alert(allInp[i].name)  
        }  
    }  
</script>

函数addRow(r){
var root=r.parentNode;
var allRows=root.getElementsByTagName('tr');
var cRow=allRows[0]。克隆节点(true)
var cInp=cRow.getElementsByTagName('input');
var countRow=cRow.getElementsByClassName('count');
对于(var i=0;i类似这样的情况:

var cln = document.getElementByID("clone");
var clns = cln.getElementsByTagName("td");

for(var i = 0; i <clns.length; i++)
{
   clns[i].innerHTML = "";
}
var cln=document.getElementByID(“克隆”);
var clns=cln.getElementsByTagName(“td”);

对于第一个for循环中的(var i=0;i,只需添加以下内容:

cInp[i].value='';

如果我添加
cInp[I].value='';
问题在于它会重置submit按钮的值。Kenned的代码帮助我解决了这个问题。使用innerHTML的空值的问题在于它会清除所有输入代码。我添加了类“cloneInput”对于每个输入字段:
var cln=document.getElementById(“克隆”);var clns=cln.getElementsByClassName(“克隆输入”);for(var i=0;实际上我发布的速度有点太快了,因为我没有注意到您希望输入重新启动,我只是认为您希望清除TD的