克隆<form> </form>标记并将其包装在现有内容周围?

时间:2011-11-17 20:45:32

标签: jquery html append clone

所以有一个现有的表单标签:

<form id="vCSS_mainform" onsubmit="javascript:return QtyEnabledAddToCart_SuppressFormIE();" action="/ProductDetails.asp?ProductCode=40124" name="MainForm" method="post">Bunch of Content</form>

此表单标记中包含大量内容。我需要只使用它的元素,克隆它,并将它包装在页面上的另一个TABLE元素周围。

我不希望克隆表单标记中的任何内容。这可能吗?

我不能只做$(“p”)。wrapAll(“”);因为该表单操作包含更改的动态内容。所以我需要在用户所在的任何页面上找到表单标签并克隆那个确切的标签。

4 个答案:

答案 0 :(得分:2)

var $clone = $('#vCSS_mainform').clone().empty().attr('id', 'newId');
$('#vCSS_mainform').remove(); // only if you don't need it anymore.
$('#yourTable').wrap($clone);

注意:如果删除原始表单,则无需为克隆设置新ID(不需要.attr('id', 'newId')

答案 1 :(得分:0)

这相对容易实现,真正需要做的就是使用.clone().append().empty()

$('#vCSS_mainform').clone().appendTo($('body')).empty();

JS Fiddle demo

当然,请记住,重复的id是无效的HTML。

<小时/> 已编辑以完成答案,以包装您可以使用的#accBox

$('#accBox').wrap($('#vCSS_mainform').clone().appendTo($('body')).empty());

JS Fiddle demo

参考文献:

答案 2 :(得分:0)

$("#accBox").wrap($('#vCSS_mainform').clone().empty());

Fiddle demo

答案 3 :(得分:0)

尝试这样的事情。

function strip(htmlfullstring)
{
   var tmp = document.createElement("formid");
   tmp.innerHTML = html;
   return <form> + tmp.textContent||tmp.innerText+</form>;
}

如果我理解你的要求。

相关问题