html - 克隆并用新添加的元素及其克隆内容替换自身
问题描述
我正在尝试执行以下操作;
(1) 克隆元素。
(2) 创建一个新元素并与克隆的元素连接。
(3) 将克隆的元素替换为新元素。
var clonedElement = $('.container input#input_text').clone();
$(".container input#input_text").replaceWith('<div class="custom-container"><p class="custom-text">Some Text</p>' + clonedElement + '</div>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<!-- Some auto generated element -->
<!-- Some auto generated element -->
<form>
<!-- Some auto generated element -->
<input id="input_text" />
<!-- Some auto generated element -->
</form>
<!-- Some auto generated element -->
<!-- Some auto generated element -->
</div>
克隆的不会转换回其原始元素,它只是对象。
解决方案
您可以append
将克隆的元素复制到新元素div
,然后将元素的内容替换为:
var clonedElement = $('.container input#input_text').clone();
$(".container input#input_text")
.replaceWith($('<div class="custom-container"><p class="custom-text">Some Text</p></div>')
.append(clonedElement));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<!-- Some auto generated element -->
<!-- Some auto generated element -->
<form>
<!-- Some auto generated element -->
<input id="input_text" />
<!-- Some auto generated element -->
</form>
<!-- Some auto generated element -->
<!-- Some auto generated element -->
</div>