我有一堆像
<div>
<div class="stuff"/>
<div class="stuff"/>
<div class="stuff"/>
</div>
我想用一套新的东西来代替它
<div>
<div class="stuff"/>
<p class="stuff"/>
<ul class="stuff"/>
<a class="stuff"/>
</div>
这将通过 Ajax 获取。我的问题是:最好的方法是什么?
$.replaceWith
并没有完全按照我的意愿行事,因为我最终得到了多个新的stuff
.
我可以保证所有的stuff
都将在一个连续的块中,所以大概我可以在 old 的最后一个元素(或第一个元素之前)之后放置一些占位符stuff
,删除 old stuff
,并用 new 替换占位符stuff
。
然而,这似乎相当迂回和不雅。有什么聪明的方法可以一次性删除所有旧的stuff
并放入一个新的副本stuff
吗?
编辑:我也想在不使用任何容器 div 的情况下执行此操作。在上述情况下,使用容器 div 可以工作,但在某些情况下会失败,例如当stuff
a 位于内部时<table>
:
<table>
<head/>
<body>
<tr/>
<tr class="stuff"/>
<tr class="stuff"/>
<tr class="stuff"/>
<tr/>
</body>
</table>
如果我想stuff
用另一组行替换标记的行,可能更多,可能更少,我无法在不破坏 HTML 的情况下很好地将它们放入容器中,因为<body>
只能包含<tr>
s (IIRC)。