2015-07-11 112 views
0

那麼有沒有一種簡單的方法來獲取最後一個節點,所以我可以簡單地刪除最後一個節點的輸入? deleteinput()函數。刪除動態創建的輸入


<script> 

    var form = document.getElementById("form"); 


    function newinput(){  
     var input = document.createElement("input"); 
     input.type = "text"; 
     form.appendChild(input); 
    } 
    function deleteinput(){ 

     form.removeChild(); 

    } 
</script> 

回答

0

您應該添加您的input小號一些id以及這樣你就可以通過提供id作爲參數傳遞給您的deleteinput()功能刪除它們。

你的函數看起來像這樣

function deleteinput(name) { 
    var input = document.getElementByName(name); 
    form.removeChild(input); 
} 

而且newinput()將發生相應的變化:

function newinput(name) { 
    var input = document.createEleement("input"); 
    input.type = "text"; 
    input.name = name; 
    form.appendChild(input); 
} 

您還可以創建一些全局整數和一些字符串自動生成輸入的名字+的增加值你的全局變量 - 這種方式你不需要將name參數傳遞給newinput()函數。

我不確定這會100%的工作,我沒有測試它。也許你需要稍微調整一下,但主要邏輯應該是正確的。

0

可以使用lastChild屬性來獲取最後一個孩子,直到你得到一個input

function deleteinput() { 
    for (var child = form.lastChild; child.nodeName.toLowerCase() != 'input'; child = child.previousSibling) { 
    } 
    if (child) { 
     form.deleteChild(child); 
    } 
} 
+0

任何方式來使它只能刪除輸入不是所有在那種形式的孩子? – Higeath

+0

我添加了一個循環,以相反的順序通過孩子,直到它到達輸入 – Barmar

0

是的,你可以得到和刪除最後一個元素這樣的previousSibling通過這些步驟。

var ele = document.getElementById("parent element Id").lastChild; 
ele.remove();