2012-05-04 8 views
5

¿Cómo puedo ajustar cada palabra en un lapso y conservar el formato del texto? p.ej. br, em, fuerteCómo ajustar cada palabra en un lapso pero conservar el formato de texto

estoy usando el código siguiente para envolver cada palabra de un editor de texto enriquecido en un lapso, pero se está excluyendo toda mi formato.

$(window).load(function() { 
$(".hero_image p").addClass("hero_image_caption"); 
$('.hero_image p').each(function(){ 
    var text = $(this).text().split(' '); 

    for(var i = 0, len = text.length; i < len; i++) { 
     text[i] = '<span>' + text[i] + '</span>'; 
     } 
     $(this).html(text.join(' ')); 

     });   
}); 
+1

Es la 'texto()' que se Excluyendo el formato. Podría funcionar mejor si opera en 'html()' en su lugar y agrega algo de lógica para evitar tratar de inyectar las etiquetas '' en el medio de otras etiquetas HTML. – aroth

Respuesta

6
$('.hero_image p').each(function(){ 
    var text = $(this).html().split(' '), 
     len = text.length, 
     result = []; 

    for(var i = 0; i < len; i++) { 
     result[i] = '<span>' + text[i] + '</span>'; 
    } 
    $(this).html(result.join(' ')); 
});   
+0

Los saltos de línea se envuelven dentro de los tramos y, por lo tanto, se ignoran. Las etiquetas em a veces se envuelven en el lapso, pero otras veces envuelven dos palabras span. – JV10

Cuestiones relacionadas