3

我有 3 个 div,我想用另一个 div 的开始标签替换第一个 div,用结束标签替换第三个 div。这就是我的意思:

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

当我尝试替换(使用replaceWith())第一个div<div class="foo">和第三个div 时</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 回答