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

How to replace multiple selectors at a time using replaceWith()

本文关键字:替换 选择器 一次 何使用 replaceWith      更新时间:2024-04-29

我想用其他div替换某些div。但我想一次做所有的事情。

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

所以我想我应该用replaceWith()来代替,因为它一次就这么做了:

divs_to_replace.replaceWith(new_divs);

然而,这将用新的div一个接一个地替换旧的div。所以我有很多旧的div,有很多次是重复的新div。有没有办法让我一次完成这一切?

编辑:

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

http://jsfiddle.net/9ej2n/1/(所需解决方案)

第2版:(..内容..)

<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()而不是以前的方法会更好地提高性能。

如果你坚持使用replaceWith,那么你可以先包装它们:

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

Fiddle:http://jsfiddle.net/9ej2n/3/

将它们包裹起来,然后替换父对象。