如何使用jQuery克隆输入

时间:2015-09-09 14:51:19

标签: javascript jquery

我尝试克隆输入字段,但我所能做的就是获取值。

以下是jsFiddle

当我尝试$('#input').html()时,我得到了空字符串。

我知道答案是表面上的某个地方,但我找不到它。请帮忙。

修改  我不需要价值。我说 - 我能做到。我需要将输入CLONE作为HTML。这里有什么不可理解的?
编辑2 我尝试克隆一个元素并用这个获取html:

$('#text').clone().html()

但它也返回一个空值。虽然如果我试图得到一个val:

$('#text').clone().val() 

通常会返回一个值

4 个答案:

答案 0 :(得分:4)

正如this answer上的回答...您可以使用Javascript来获取outerHTML。

var inputHTML = $('#input')[0].outerHTML;

然后您可以在页面上的任何位置使用该变量!

希望有所帮助!

编辑:您可以使用jQuery完成此操作,再次回答上述相关问题......

$.fn.outerHTML = function() {
    return $(this).clone().wrap('<div></div>').parent().html();
};

var inputHTML = $("#input").outerHTML());

答案 1 :(得分:2)

您正在寻找的方法是 clone()

答案 2 :(得分:2)

怎么样?
$('#input-text').html($('#test').clone().removeAttr('value'));

答案 3 :(得分:0)

对特定DOM元素使用.clone()方法将固有地提取HTML(关于它的所有内容都是重复的,原始的)。

$("#test").clone().appendTo("#input-text").removeAttr('value');
$("input:eq(1)").attr("id", "test_02");
input {
  margin-left: 3px;
  border: solid 1px #ACE;
  width: 3.05em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input id='test' value='10201' />
<p id="input-text">Hello</p>

添加.attr()方法只是为了提高对使用.clone()方法的一个陷阱的认识 - 即,它复制了DOM元素的id,这不是最佳实践甚至允许标准的HTML编程。在这种情况下,最好的实践可能是创建一个你知道的唯一class,它只会处理那个特定的DOM元素,因此可以根据需要复制它。

其他资源
»Fiddle Example
»clone() API
»appendTo() API
»Class VS ID