我应该如何使用 JavaScript 复制某个 <div>
并将其 ID 设为与原始 ID 不同。使用 jQuery 也可以。
我应该如何使用 JavaScript 复制某个 <div>
并将其 ID 设为与原始 ID 不同。使用 jQuery 也可以。
var div = document.getElementById('div_id'),
clone = div.cloneNode(true); // true means clone all childNodes and all event handlers
clone.id = "some_id";
document.body.appendChild(clone);
使用方式:
JQuery
var clonedDiv = $('#yourDivId').clone();
clonedDiv.attr("id", "newId");
$('#yourDivId').after(cloneDiv);
$('#yourDivId').after(cloneDiv);
可能是更好的解决方案。 - Sem我曾经遇到过同样的问题。我通过设置一个计数器并将其附加到ID上来解决了这个问题。希望这也能帮助你:
<script type="text/javascript">
var counter = 1; //Set counter
function clone(sender, eventArgs) {
var $row = $('#yourID');
var $clone = $row.clone(); //Making the clone
counter++; // +1 counter
//Change the id of the cloned elements, append the counter onto the ID
$clone.find('[id]').each(function () { this.id += counter });
}
</script>
function contactCloseMe(element) {
$(element).closest(".row").remove();
}
function contactAddMoreField(setion_id) {
var container = $('#' + setion_id);
var item = container.find('.contact-default').clone();
item.find('input').val('');
item.removeClass('contact-default').removeClass('d-none');
item.appendTo(container).show();
var newButton =
'<button type="button" class="btn btn-danger btn-rounded btn-sm btn-icon" style="margin-top:-13px" onclick="contactCloseMe(this);"> <i class="bi bi-x"></i> </button>';
item.find('div:last').show().append(newButton);
$(this).closest('div').after(item);
}
<div class="col-sm-6">
<div id="email_contact">
<div class="row contact-default">
<div class="col-sm-11">
<div class="row">
<label for="last_name">Email*</label>
<div class="col-sm-12">
<input type="email" id="email" placeholder="Enter Email" name="email" class="form-control flat" onchange="store_data(this)" value="{{ $provider->email }}" required>
</div>
</div>
</div>
<div class="col-sm-1 text-center mt-5"></div>
</div>
</div>
<button type="button" class="btn btn-primary btn-sm flat float-end mt-3" onclick="contactAddMoreField('email_contact')">+ Add More Email</button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
jQuery有一个clone()方法
var original = $("#original");
var newClone = original.clone();