que tienen un montón de DOM comoJQuery: ¿forma elegante de reemplazar un conjunto de elementos con otro conjunto?
<div>
<div class="stuff"/>
<div class="stuff"/>
<div class="stuff"/>
</div>
y quiero reemplazarlo con un nuevo conjunto de cosas
<div>
<div class="stuff"/>
<p class="stuff"/>
<ul class="stuff"/>
<a class="stuff"/>
</div>
que será fue a buscar a través de Ajax. Mi pregunta es: ¿cuál es la mejor manera de hacer esto?
$.replaceWith
no hace exactamente lo que quiero, porque luego termino con varias copias del nuevo stuff
.
puedo garantizar que todo el stuff
estarán en un bloque contiguo, y por lo que presumiblemente podría poner en algún marcador de posición después de que el último elemento (o antes del primer elemento) de la vieja stuff
, quitar la vieja stuff
, y vuelva a colocar el marcador de posición con el nuevo stuff
.
Sin embargo, esto parece bastante indirecto y poco elegante. ¿Hay alguna manera inteligente de, eliminar todo el antiguo stuff
y poner en una sola copia del nuevo stuff
, todo de una vez?
EDITAR: También me gustaría hacer esto sin utilizar ningún contenedor divs. Utilizando DIV contenedor trabajarían en el caso anterior, pero fallarían en algunos casos, como cuando el stuff
está dentro de un <table>
:
<table>
<head/>
<body>
<tr/>
<tr class="stuff"/>
<tr class="stuff"/>
<tr class="stuff"/>
<tr/>
</body>
</table>
si quiero reemplazar las filas etiquetadas stuff
con otro conjunto de filas, posiblemente más , posiblemente menos, no hay forma de que pueda colocarlos en un recipiente sin romper el HTML, ya que el <body>
solo puede contener <tr>
s (IIRC).
¡Su marcado HTML parece incorrecto! – thecodeparadox
¿Qué has probado que no es elegante? Hay muchas maneras de hacer esto, ¿cuál intentaste? – Joseph
@thecodeparadox corrigió el marcado. Joseph: todo el marcador de posición insertar, eliminar cosas viejas, reemplazar el marcador –