无法设置第二个及其后克隆元素的ID和名称

时间:2013-02-26 06:52:38

标签: javascript jquery asp.net-mvc

我有关于设置克隆元素的ID的问题。

首先我有一个部分视图[mypartialview.cshtml]只有一个元素

@model mydata

@{
Layout = null;
}
 @Html.EditorFor(model => model.Details,"","supp_int_mat_det")

现在在我的页面中我有一个原型

<div id="simtemplate" style="display: none">

    @Html.Partial("mypartialview", new mydata())

</div>

我正在用javascript点击代码编写这段代码

 function addsupp() {
    var component = "simtemplate";
    var idiv = $("#simtemplate").clone(); //.html();
    idiv.removeAttr("style");

    var newid = "CompetencyParts[" + counter + "]";
    counter = counter + 1;

    if (previd == "") {
        previd = newid;
    }
    var fdiv = idiv.find("#supp_int_mat_det");
    fdiv.addClass("ckeditor");
    fdiv.attr("name", newid);
    fdiv.attr("id", newid);

    $("#panel").append(idiv);

    var html = '';
    var config = { width: 400, height: 200 };
   // CKEDITOR.replace(newid);


}

我成功设置了第一个克隆元素的id 第二个或此后克隆的元素具有相同的ID是第一个元素 enter image description here 谁能告诉我为什么会这样?

1 个答案:

答案 0 :(得分:0)

我明白了。 实际上我忘了改变div的id.upon附加它成为'simtemplate'的副本,后来克隆尝试克隆了这个重复的div。因为重复的div不包含任何原始元素[在simtemplate中找到的那个]所以id是没有改变。 添加这行代码解决了我的问题。

var idiv = $("#lessonplan").clone(); //.html();
    idiv.removeAttr("style");

    var divid = "lessonplan" + getdivcount();

    idiv.attr("name", divid);
    idiv.attr("id", divid);