【问题标题】:javascript removing all clonesjavascript删除所有克隆
【发布时间】:2012-12-20 17:57:12
【问题描述】:
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 作为脚本的基础。我知道我可以采取简单的方法(他们这样做的方式),但我想学习如何这样做。

非常感谢所有答案!

【问题讨论】:

    标签: javascript clone removechild removeall


    【解决方案1】:

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

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-16
      • 2012-01-11
      • 1970-01-01
      • 2012-05-07
      • 2012-12-02
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多