Клонировать тег <form></form> и обернуть его вокруг существующего содержимого? - PullRequest
1 голос
/ 18 ноября 2011

Итак, существует существующий тег формы как таковой:

<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 ]

2 голосов
/ 18 ноября 2011
var $clone = $('#vCSS_mainform').clone().empty().attr('id', 'newId');
$('#vCSS_mainform').remove(); // only if you don't need it anymore.
$('#yourTable').wrap($clone);

примечание: если вы удаляете исходную форму, вам не нужно устанавливать новый идентификатор для клона (не нужно .attr('id', 'newId'))

0 голосов
/ 18 ноября 2011

Попробуйте что-нибудь подобное.

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

если я понял ваше требование.

0 голосов
/ 18 ноября 2011
$("#accBox").wrap($('#vCSS_mainform').clone().empty());

Демонстрация скрипки

0 голосов
/ 18 ноября 2011

Это относительно легко достичь, на самом деле все, что вам нужно сделать, это использовать .clone(), .append() и .empty():

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

Демонстрация JS Fiddle .

Имейте в виду, конечно, что дубликаты id являются недействительными HTML.

<ч /> Отредактировано , чтобы завершить ответ, чтобы обернуть #accBox, который вы можете использовать:

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

JS Fiddle demo .

Ссылки:

...