3

3つのdivがあり、最初のdivを別のdivの開始タグに置き換え、3番目のdivを終了タグに置き換えたいと思います。これは私が意味したことです:

<div>1</div>
<div>2</div>
<div>3</div>

<div class="foo">(replaceWith()を使用して)最初のdivをで置き換え、3番目をで置き換えようとすると</div>、jQueryはそれを次のように誤解します。

<div class="foo"></div>
<div>2</div>
</div>

私が実際に欲しいのは:

<div class="foo">
 <div>2</div>
</div>

前もって感謝します、

4

1 に答える 1

2

HTML コードの断片ではなく、要素全体を操作する必要があります。それについて考える別の方法は次のとおりです。

// Get the div you want
var good = $('div:eq(1)');
// Remove the others
$('div').not(good).remove();
// Wrap the div you want
good.wrap('<div class="foo">');

最初と最後の間に複数の div がある場合は、次のようにすることができます。

$('div:first').replaceWith('<div class="foo">');
$('div.foo').nextAll('div').appendTo('div.foo');
$('div.foo :last').remove();

デモを参照してください: http://jsfiddle.net/TBMHt/

于 2011-01-13T10:50:45.613 に答える