2012-05-04 3 views
5

Как я могу обернуть каждое слово в промежутке и сохранить форматирование текста? например ш, эм, сильныйКак обернуть каждое слово в промежутке, но сохранить форматирование текста

Я использую следующий код, чтобы обернуть каждое слово из текстового редактора в пролете, но это зачистки все мое форматирование.

$(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

Это 'текст()', что зачистки форматирование. Это может сработать лучше, если вы будете работать с 'html()' вместо этого и добавить некоторую логику, чтобы не пытаться вводить теги '' в середину других тегов HTML. – aroth

ответ

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

Линейные перерывы обернуты внутри пролетов, и поэтому их игнорируют. Теги em иногда завернуты в промежуток, но в других случаях завершаются два слова span. – JV10

Смежные вопросы