2011-08-01 11 views
23

tengo un conjunto de elementos que jQuery que recibo de mi DOM llamando al:rompe Añadir línea o espacios entre los elementos cuando se utiliza jQuery .Append()

$(".some-selector"); 

Todos los elementos son mis DIVs cada uno en su propia línea . Mis DIV se establecen CSS (entre otras cosas)

display: inline-block; 

que les impide la representación como elementos de bloque (cada uno en su propia línea).

El problema es que cuando estos DIV se procesan tienen espacios entre ellos porque hay un salto de línea en el documento entre cada elemento. Me siento cómodo con eso. Por supuesto, podría usar float:left que eliminaría estos espacios, pero eso no es lo que quiero porque tendría otros problemas con el tamaño del contenedor, etc.

So. El problema es que manipulo el orden de estos elementos en mi conjunto jQuery y luego los reenvío. Lo que hago es esencialmente:

$(".some-selector").detach().manipulate().appendTo(".container"); 
// or equivalent 
$(".container").append($(".some-selector").detach().manipulate()); 

El problema es que consiguen volver a insertarse en el DOM, pero sin saltos de línea o espacios ...

¿Cómo consigo estos saltos de línea en la espalda cuando añadiendo mis elementos en DOM?

Respuesta

40

Después de volver a insertar sus elementos, agregue un poco de espacio en blanco a cada uno de ellos utilizando .after():

$(".some-selector").after(" "); 

http://jsfiddle.net/z5cFw/

+0

Eso no funciona - no hay espacio entre los elementos de SPAN: http://jsfiddle.net/u5jBS/1/ –

+2

@ Šime: Funciona, pero su ejemplo está utilizando '.append()' en su lugar de '.after()' como en el ansewr. http://jsfiddle.net/z5cFw/ – user113716

+0

@patrick Cool ':)' –

6

Usted podría utilizar map poner un textNode de un solo espacio después de cada Div:

$('.some-selector').detach().manipulate().map(function() { 
    return [this, document.createTextNode(' ')]; 
}).appendTo('.container'); 

demostración en directo:http://jsfiddle.net/Hnv2T/

+2

+1 para factor geek-cool. – user113716

+0

Esto realmente es una inteligente Šime. +1 de mí también. –

Cuestiones relacionadas