最终我的目标是将一个div移到另一个div旁边,所以我正在做的是将html保存在变量中并使用""从jquery将其放在正确的位置。除了文本框的内容(用户必须编写的内容)没有与其他内容一起复制之外,它的工作原理。
然后我尝试直接访问html,即使我在文本框中写了一些东西,我也不会在html中获取它。
var totalHtml = $("div#my-div-1").html()
但是,如果我写的话,我可以访问文本框的内容:
$("div#my-div-1 input[type=text]").value
那么为什么我在调用html时无法得到它?以及如何使用该输入(和其他输入)的内容复制整个html?
答案 0 :(得分:2)
尝试使用第一个参数克隆' withDataAndEvents'设为true。 https://api.jquery.com/clone/
$('#copy').on('click', function() {
let original = $('.div1').first(),
myCopy = original.clone(true),
originalSelects = original.find('select'),
myCopySelects = myCopy.find('select');
myCopySelects.each(function(i, obj) {
$(obj).val(originalSelects.eq(i).val());
});
$('body').append(myCopy);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div1">
<p>Paragraph text here...</p>
<input>
<select>
<option selected="selected" value="1">One</option>
<option value="2" >Two</option>
<option value="3">Three</option>
</select>
<select>
<option value="1">One</option>
<option selected="selected" value="2" >Two</option>
<option value="3">Three</option>
</select>
</div>
<p>
<button id="copy">Copy</button>
</p>
&#13;
答案 1 :(得分:0)
以下使用insertAfter jquery方法。它使用子输入和当前输入值
移动div<div id="mydiv1">
<input type="text" value="hello">
</div>
<div id="mydiv2">another div</div>
<input id="mybtn" type="button" value="Do It">
使用以下javascript
$(function(){
setTimeout(function(){
$('#mydiv1').insertAfter('#mydiv2');
}, 2000);
})