【发布时间】:2022-01-03 23:52:43
【问题描述】:
所以我有一个 MVC 应用程序,我想克隆带有标签 class="item_details" 的 div,但我的问题是当我克隆 1 次时一切都很好,然后我克隆第二次,但它会克隆前 2 个项目.
我试图从这个小提琴中重现完全相同的内容,因为它正在做我想做的事情:https://jsfiddle.net/Bala_chandran/vz58n67r/7/
所以这是我的添加项目功能,它与小提琴几乎相同,所以我不知道为什么它的行为不像它。
var id = 0;
jQuery(document).ready(function() {
var max = 10;
jQuery('#add_item').click(function() {
var button = $('#item_details').clone(true);
id++;
button.find('input').val('');
button.removeAttr('id');
button.insertBefore('.new_item_details');
button.attr('id', 'new_' + id);
});
});
注意:我要克隆的 div 包含一个 EditorFor,用于显示所有输入字段,我在代码中添加了 somme // cmets 以显示包含我要克隆的项目的 div 和添加按钮。
谁能帮忙告诉我为什么这不一样?非常感谢。
<div class="card">
<div class="card-header" id="headingFrHospCmx@(i)">
<h2 class="mb-0">
<button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#collapseFrHospCmx@(i)" aria-expanded="false" aria-controls="collapseTwo">
<b>TEST</b> TEST Hospitalisation
</button>
</h2>
</div>
<div id="collapseFrHospCmx@(i)" class="collapse @ViewBag.ExpandHospitalisation" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
<div id="ListeFraisHospitalisation@(i)_Global">
@for (int y = 0; y
< Model.Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[i].ListeHospitalisation.Liste_Hospitalisation.Count; y++) { <div style="border:1px solid black;" id="FraisHospitalisation@(i)_@(y)" class="classHospitalisation@(i)">
<div class="item_details"> // item i want to clone @Html.EditorFor(x => Model.Formulaire.Detail.DetailCmp.ListeCmpt.ListeCmptETS[i].ListeHospitalisation.Liste_Hospitalisation[y])
<a href="#" name="remove_item" class='remove' id="remove_item">Delete</a> //where i delete
</div>
</div>
}
</div>
<div id="new_item_details" class="new_item_details"></div>
<p style="margin:0px 0px 0px 0px;">
<a href="javascript:void(0)" name="add_item" id="add_item" style="font-weight:bold;font-size:16px;">Add New Item Here</a> // place i click to clone
</p>
</div>
</div>
</div>
【问题讨论】:
-
只克隆一个
first或在页面加载时将单个克隆存储在内存中。还请显示实际代码,因为没有id="item_detail",因为 jQuery 使用 id 选择器$('#item_details') -
@charlietfl 我实际上用 first() 修复了它,就像发布答案的人说的那样,它有效:) 但他删除了答案:O
-
@Christopher 绝对是在正确的轨道上,但在回答中有一些误导性的不准确陈述
-
我更正了自己并取消了删除。感谢@charlietfl 的提示。 =)
标签: javascript jquery asp.net-mvc