为什么我无法访问此输入文本的内容

时间:2018-01-12 04:27:27

标签: javascript jquery html

最终我的目标是将一个div移到另一个div旁边,所以我正在做的是将html保存在变量中并使用""从jquery将其放在正确的位置。除了文本框的内容(用户必须编写的内容)没有与其他内容一起复制之外,它的工作原理。

然后我尝试直接访问html,即使我在文本框中写了一些东西,我也不会在html中获取它。

var totalHtml = $("div#my-div-1").html()

但是,如果我写的话,我可以访问文本框的内容:

$("div#my-div-1 input[type=text]").value

那么为什么我在调用html时无法得到它?以及如何使用该输入(和其他输入)的内容复制整个html?

2 个答案:

答案 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;
&#13;
&#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);
})