2017-09-13 42 views
0

我發現了堆棧溢出問題的一些答案,但它不適合我。 目前,我的代碼看起來像這樣(我刪除了其他的div所以它不是太長時間閱讀):如何在克隆div之前刪除輸入?

<div id="dynamicInput"> 
    <div id="duplicater"> 
     <input type="text" placeholder="Event Title" name="title"> 
     <input type="text" placeholder="url" name="url"> 
    </div> 
</div> 

和JavaScript:

var i = 0; 
    var original = document.getElementById('duplicater'); 

    function duplicate() { 
    var clone = original.cloneNode(true); 
    clone.id = "duplicate" + ++i; 
    original.parentNode.appendChild(clone); 
} 

它的偉大工程,但如果我在按下「添加事件」按鈕之前放置一些文本,它也克隆文本,我不想那樣。 我一直在努力,在第一行添加.find('input').val(''),但它不工作,我甚至不能克隆了。我的控制檯中的錯誤是method find not found

同樣的事情發生的,我在論壇上找到的所有解決方案:或者禁用按鈕,我不能再複製,或它的工作原理,但克隆的文本。

我該怎麼做?

感謝您的幫助!

+0

考慮使用原始模板。 –

+0

在某處是否有按鈕觸發事件?如果它能幫助我們更好地理解問題,您可以發佈其他HTML。 – kauffee000

+0

是這是按鈕<輸入類=「BTN BTN登錄」類型=「按鈕」值=「添加事件」的onClick =「重複()」 /> – Jessicascn

回答

1

您可以遍歷您的div元素,並逐一清除它們。

var i = 0; 
 
    var original = document.getElementById('duplicater'); 
 

 
var onClick = function() { 
 
    var clone = original.cloneNode(true); 
 
    clone.id = "duplicate" + ++i; 
 
    
 
    for (var i = 0; i < clone.childNodes.length; i++) { 
 
     var e = clone.childNodes[i]; 
 
     if (e.tagName) switch (e.tagName.toLowerCase()) { 
 
     case 'input': 
 
      switch (e.type) { 
 
       case "radio": 
 
       case "checkbox": e.checked = false; break; 
 
       case "button": 
 
       case "submit": 
 
       case "image": break; 
 
       default: e.value = ''; break; 
 
      } 
 
      break; 
 
     case 'select': e.selectedIndex = 0; break; 
 
     case 'textarea': e.innerHTML = ''; break; 
 
     default: break; 
 
     } 
 
    } 
 
    original.parentNode.appendChild(clone); 
 
}; 
 

 
$('#button').click(onClick);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
 
<div id="dynamicInput"> 
 
    <div id="duplicater"> 
 
     <input type="text" placeholder="Event Title" name="title"> 
 
     <input type="text" placeholder="url" name="url"> 
 
    </div> 
 
</div> 
 
<input type="button" id="button" value="Clone" />