5

これを変更するにはどうすればよいですか:

<div class="container">
  <div class="span-19">
    <div id="content">
       <!-- variable amount of content -->
         <form class="move-me">
        <!-- form -->
         </form>
    </div>
  </div>
</div>

これに:

<form class="move-me">
  <div class="container">
    <div class="span-19">
      <div id="content">
        <!-- variable amount of content -->
        <!-- form data -->
      </div>
    </div>
  </div>
</form>

jQueryを使用していますか?<form>特に、そのフォームの子要素ではなく、開始タグと終了タグのみを移動したいことに注意してください。できれば、これができるようにいくつか欲しいですjQuery.fn

$('.move-me').changeNesting('.container');

前もって感謝します!

4

4 に答える 4

6

使用unwrapwrap

var toMove = $('.move-me'​);
toMove.​​​​​​children().unwrap()​;
$('.container'​).wrap(toMove);​

更新:フォームに生のテキストがネストされている場合、上記のコードは機能しないことに注意してください。フォームの子を別のタグでラップして機能させることができます(endコメントでYoshiが指摘したように使用することもできます)。

$('.container').wrap(
  $('.move-me').wrapInner('<div class="nostyle"/>').children().unwrap().end()
);​​​​
于 2012-11-03T23:33:24.150 に答える
2

次のように.wrap().detach( )を使用します。

$('.container').wrap( $('form.move-me').detach() );
于 2012-11-03T23:20:51.113 に答える
0
$('.move-me').replaceWith(function() {
    return $('*', this);
});
$('.container').wrap('<form class="move-me" />');​

デモhttp://jsfiddle.net/KX63Z/

于 2012-11-03T23:28:19.980 に答える
0
var $form=$('form.move-me')
$form.replaceWith($form.html()));
$('.container').wrap('<form class="move-me">');
于 2012-11-03T23:30:58.223 に答える