我尝试克隆输入字段,但我所能做的就是获取值。
以下是jsFiddle
当我尝试$('#input').html()
时,我得到了空字符串。
我知道答案是表面上的某个地方,但我找不到它。请帮忙。
修改
我不需要价值。我说 - 我能做到。我需要将输入CLONE作为HTML。这里有什么不可理解的?
编辑2
我尝试克隆一个元素并用这个获取html:
$('#text').clone().html()
但它也返回一个空值。虽然如果我试图得到一个val:
$('#text').clone().val()
通常会返回一个值
答案 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