在我的HTML中,我有一个ID为room-row-1的div。我使用以下Jquery创建了一个新的ID为room-row-2
的克隆//Clone Extra Rooms
var cloneIndex = $(".clonedRoom").length;
$('#add-room').click(function () {
cloneIndex++;
$('.add-persons-to-room-wrapper').first().clone()
.attr("id", "room-row-" + cloneIndex)
.appendTo('#room-list');
});
这很好用。在克隆代码中,有一些元素仍然具有空间1的Id,例如:
<select name="rooms[]" id="room1" class="form-control">
如何通过克隆代码并用room2替换room1的所有出现?我想的是:
.find("*").each(function() {
.html().replace("room1","room" + cloneIndex);
}
})
但这个代码无效。
答案 0 :(得分:0)
我现在修改了我的功能如下:
$('#add-room').click(function () {
cloneIndex++;
$('.add-persons-to-room-wrapper').first().clone()
.attr("id", "room-row-" + cloneIndex)
.find("*").each(function () {
var id = this.id || "";
var match = id.match(regex) || [];
if (match.length == 3) {
this.id = match[1] + (cloneIndex);
}
})
;
});
此代码改编自http://jsfiddle.net/mjaric/tfFLt/并解决了重命名项目的问题,只要该数字位于Id的末尾 - 例如:select id =&#34; room1&#34;。
我将测试使用类和属性来查看是否仍然适用。