2013-05-08 111 views
2

我建了兩個按鈕,這個值(「+」和「 - 」) 當我點擊「+」它會創建一個文本和組合框, 我想知道如何與刪除「 - 」?按鈕(由只有JavaScript)如何通過按鈕刪除對象?

下面的代碼:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>create and delete</title> 
<script type="text/javascript"> 
/*this function creates text box and combo box*/ 
function cre() 
    {var t=document.createElement('select'); 
    var form=document.getElementById('theForm'); 
    var label = document.createElement('label'); 
    var textbox = document.createElement('input'); 
    form.appendChild(t); 
    form.appendChild(textbox);} 
function del() 
    /*{delete t,form,label,textbox;}*/ 
</script> 
</head> 
<body> 
    <form id='theForm'> 
     <input type="button" value="+" onclick="cre()" /> 
     <input type="button" value="-" onclick="del()" /> 
    </form> 
</body> 
</html> 
+2

https://developer.mozilla.org/en-US/docs/DOM/Node.removeChild – 2013-05-08 05:40:20

+0

看看[這裏](http://stackoverflow.com/questions/ 3387427/JavaScript的刪除元素,通過-ID) – quickshiftin 2013-05-08 05:41:22

+0

你爲什麼不試試jQuery的?這是很容易 – Shin 2013-05-08 06:11:40

回答

1
function del() 
     { 
     var form=document.getElementById('theForm'); 
     var t = form.getElementsByTagName('select'); 
     var textbox = form.getElementsByTagName('input'); 
     if(t != 'undefined' && textbox != 'undefined') 
     { 
      form.removeChild(t[t.length-1]); 
      form.removeChild(textbox[textbox.length-1]); 
     } 
     } 

Fiddle供您參考

+0

這隻適用於最後一個對象。重複的點擊無所作爲。 – 2013-05-08 05:45:13

+0

嗨,謝謝你的答案,它的工作,但它只能刪除其中的一個,例如當我點擊「+」3次,我想刪除它們,它只刪除其中的一個 – 2013-05-08 05:46:21

+0

Yupp我剛纔說他使用removeChild if他想刪除他應該爲這些對象創建ID其他對象,而且嘗試,捕捉和其他條件.. – 2013-05-08 05:47:16

1

我的解決辦法:

cre = function() { 
    var form = document.getElementById('theForm'), 
     div = document.createElement('div'), 
     t = document.createElement('select'), 
     label = document.createElement('label'), 
     textbox = document.createElement('input'); 

    div.className = 'divContainer'; 
    div.appendChild(t); 
    div.appendChild(label); 
    div.appendChild(textbox); 
    form.appendChild(div); 
} 

/*{delete t,form,label,textbox;}*/ 
delForm = function() { 
    var form = document.getElementById('theForm'); 
    form.parentNode.removeChild(form); 
} 

del = function() { 
    var containers = document.getElementsByClassName('divContainer'); 
    for(var i = 0; i < containers.length; i++) { 
     if(typeof(containers[i]) === 'object') { 
      containers[i].parentNode.removeChild(containers[i]); 
     } 
    } 
} 

的jsfiddle:http://jsfiddle.net/j6Fxc/27/

+1

設定值是:「/ * {刪除T,表格,標籤,文本框;} * /」 – EpokK 2013-05-08 05:55:12

+0

他不是製作表格每個「+」點擊 – 2013-05-08 05:56:31

+1

它不工作,你有沒有嘗試它發佈之前呢? – 2013-05-08 06:00:42