Javascript 在HTML上克隆片段-最佳实践

Javascript 在HTML上克隆片段-最佳实践,javascript,jquery,html,clone,Javascript,Jquery,Html,Clone,我试图在用户单击时克隆HTML页面上的一个部分。 在表单中,当用户希望向表单中添加更多元素时,我尝试复制并添加一个字段组 克隆时,我希望确保所有ID都被重写,以便页面和元素保持完整。 我一直在想一个好办法 尝试以下方法。 我更喜欢JQuery,因为它的简洁和美观。 我想听听专家们的观点 JS方法: function addElementToParentById(src) { var temp = document.getElementById(src); var tempParent = te

我试图在用户单击时克隆HTML页面上的一个部分。 在表单中,当用户希望向表单中添加更多元素时,我尝试复制并添加一个字段组

克隆时,我希望确保所有ID都被重写,以便页面和元素保持完整。
我一直在想一个好办法

尝试以下方法。 我更喜欢JQuery,因为它的简洁和美观。 我想听听专家们的观点

JS方法:

function addElementToParentById(src) {

var temp = document.getElementById(src);
var tempParent = temp.parentElement;
var tempNew = temp.cloneNode(true);
renameIds(tempNew,"1");
tempParent.appendChild(tempNew);

}

function renameIds(param, token) {

if(param.id){
    param.id=param.id+token;
}

for(i =0; i < param.childNodes.length; i++) {
    var tempChild = param.childNodes[i];
    if(tempChild.id) {
        tempChild.id = tempChild.id + token;
    }

    if(tempChild.childNodes 
            && tempChild.childNodes.length > 0) {
        for(j =0; j < param.childNodes.length; j++) {
            renameIds(tempChild.childNodes[j], token);
        }
    }
}
$("#addbtnid").click( function() {
                        $("#filopsmainpane").append($("#filopspane").clone(false).find("*[id]").andSelf().each(
                            function() { $(this).attr("id", $(this).attr("id") + "1"); }));
                    }
“最佳”是主观的,但我更喜欢使用框架(例如jQuery),因为:

  • 较短的代码不太可能包含错误,并且更易于维护

  • 该框架的作者已经完成了处理浏览器不一致性的工作

    • “最佳”是主观的,但我更喜欢使用框架(例如jQuery),因为:

      • 较短的代码不太可能包含错误,并且更易于维护

      • 该框架的作者已经完成了处理浏览器不一致性的工作


      没有最佳做法,因为这完全取决于具体情况。对于初学者来说,添加jQuery不仅仅是为了克隆一些HTML片段。我的问题更多的是在表单上以类似的行克隆HTML片段的一种简洁方式。我开始做的一小部分是。没有最佳实践,因为这完全取决于环境。对于初学者来说,添加jQuery不仅仅是为了克隆一些HTML片段。我的问题更多的是,在表单上以类似的行克隆HTML片段的一种简洁方法是什么。我开始做的一个小片段是。我同意。jQuery甚至[knockoutjs]()似乎在这里做了一些很酷的事情。我同意。jQuery甚至[knockoutjs]()似乎在这里做了一些很酷的事情。