如何使用replaceWith()一次替换多个选择器

时间:2013-12-07 13:59:42

标签: javascript jquery replacewith

我想用其他div替换某些div。但我想一次做到这一切。

divs_to_replace.eq(-1).after(new_divs).end().remove();

所以我认为我应该使用replaceWith(),因为它会立即执行:

divs_to_replace.replaceWith(new_divs);

然而,这将逐个替换旧的div。所以我有很多旧的div有时候重复新的div。有没有办法可以一次完成这一切?

修改

http://jsfiddle.net/9ej2n/ (工作方案)

http://jsfiddle.net/9ej2n/1/ (期望的解决方案)

EDIT2:              (..内容..)     

<div class="article">
    (..content..)
</div>

<div class="article">
    (..content..)
</div>

<div class="article">
    (..content..)
</div>

<div class="empty_article"></div>
<div class="empty_article"></div>
<div class="empty_article"></div>
<div class="empty_article"></div>

现在我通过AJAX将带有内容的新文章加载到页面中,并用这些新文章替换empty_articles。

我试图让这个例子变得简单。无论如何,这是更真实的例子。 我认为使用replaceWith()而不是之前的方法对性能会更好。

1 个答案:

答案 0 :(得分:0)

如果您坚持使用replaceWith,那么您可以先将它们包起来:

divs_to_replace.wrapAll("<div/>").parent().replaceWith(new_divs);

小提琴:http://jsfiddle.net/9ej2n/3/

包裹它们然后替换父母。