jquery clone div更改其所有子节点的id和id

时间:2015-08-09 07:32:32

标签: jquery

我正在使用jquery 1.10.2并尝试克隆一个div,我已经成功完成了,但我还需要更改该div及其所有子节点的id,我目前还没有成功

我已经搜索了这个并找到了几个例子来帮助thisthis,但他们没有工作过。我真的不明白为什么。我知道我必须做一些非常明显错误的事情。我没有工作的原因是什么? (我已经离开了我的尝试 - 但评论了)

$(document).ready(function () {
$("#btnSecondContact").click(function () {
    $("#divCustomerData").removeClass("col-lg-6 col-md-6");
    $("#divCustomerAddr").removeClass("col-lg-6 col-md-6");
    $("#divCustomerData").addClass("col-lg-4 col-md-4");
    $("#divCustomerAddr").addClass("col-lg-4 col-md-4");
    $('#divCustomerData').after(
        $('#divCustomerData').clone()
        //$('#divCustomerData').clone().attr("id", "newId").find("#divCustomerData").attr("id", "#divCustomerData_cloned")

        //$('#divCustomerData').clone(function () {
        //    $(this).attr("id", $(this).attr("id") + "_cloned")
        //})
    )
    //$("#divCustomerData").clone(false).find("*[id]").andSelf().each(function () { $(this).attr("id", $(this).attr("id") + "_cloned"); });
    $("#btnSecondContact").prop('disabled', true);
})

});

1 个答案:

答案 0 :(得分:0)

你打电话clone次数过多而丢失参考资料。

更改此

$('#divCustomerData').after(
        $('#divCustomerData').clone()
        //$('#divCustomerData').clone().attr("id", "newId").find("#divCustomerData").attr("id", "#divCustomerData_cloned")

        //$('#divCustomerData').clone(function () {
        //    $(this).attr("id", $(this).attr("id") + "_cloned")
        //})
    )

var $clon = $('#divCustomerData').clone();
 $('#divCustomerData').after(
    $clon.attr("id", "newId").find("#divCustomerData").attr("id", "#divCustomerData_cloned")
)

另请注意,clone不接受函数:

所以我不知道你在这里尝试做了什么:

//$('#divCustomerData').clone(function () {
        //    $(this).attr("id", $(this).attr("id") + "_cloned")
        //})