javascript删除所有克隆

时间:2013-01-07 01:11:08

标签: javascript clone removechild removeall

var counter = 0;

function moreFields() {
     counter++;
     var newFields = document.getElementById("input").cloneNode(true);
     newFields.id = counter;
     newFields.style.display = 'block';
     var newField = newFields.childNodes;
     for (var i=0;i<newField.length;i++) {
         var theName = newField[i].id;
         if (theName) {
             newField[i].id = theName + counter;
            }
        }
     var insertHere = document.getElementById("buttons");
     insertHere.parentNode.insertBefore(newFields,insertHere);
}

function clearData() {
     var pricetxt = document.getElementById('price1');
     pricetxt.value = "";
     var qtytxt = document.getElementById('qty1');
     qtytxt.value = "";
     while (counter > 0) {
         var cell = document.getElementById("input"+counter);
         cell.parentNode.parentNode.removeChild(cell.parentNode)
         counter--;
        }
     counter = 1;
}

window.onload = moreFields;

JSFiddle

我想删除按下按钮时第一个函数动态创建的所有克隆。 我使用this来建立我的脚本。我知道我可以采取简单的方法(他们这样做的方式),但我想学习如何这样做。

非常感谢所有答案!

1 个答案:

答案 0 :(得分:0)

你有一个计数器,所以只需将所有节点删除到计数器值,然后重置它。

function startOver() {
    var element;
    for (var i = 1; i <= counter; i += 1) {
        element = document.getElementById(i);
        if (element.parentNode) {
            element.parentNode.removeChild(element);
        }
    }
    counter = 0;
    moreFields();
}

演示:http://jsfiddle.net/AXUbP/1/