2012-01-31 40 views
0
把它包

我的目標是要找到一個句子中的HTML頁面,並更換/與 <span class='red'>...</span>替換句子的只是一個發生和風格

主要突出成績相同的概念包裝...而是話我需要強調整個句子

由於某種原因,我的代碼,有時作品,有時不...

這裏:

$('body').each(function() { 
    $(this).html(function(i, html) { 
    return html.replace(myString, '<span class="red">'+myString+'<\/span>'); 
    }); 
}); 

當它發現第一個句子的第一個詞出現時它似乎停止... 任何幫助嗎?

+2

您有多個BODY元素? ':P' – 2012-01-31 15:39:08

+0

這句話可能在頁面的任何地方? (比如,在標題中,在頁腳中,在導航菜單中)。或者是否存在您要執行搜索的文本的包裝元素? – 2012-01-31 15:43:43

+0

我可以限制包裝元素,我設置「身體」只是一個例子 – Francesco 2012-01-31 15:51:30

回答

1
  • 使用正規
  • 加入 「G」,以取代所有出現
  • 用 「$ 1」 重用你的字符串
  • 請注意,您的字符串中沒有特殊字符(可能會被解釋爲正則表達式運算符)

    var re = new Regexp('('+myString+')', "g"); 
    html.replace(re, '<span class="red">$1<\/span>') 
    
0

好,讓我們試試這個,使用遞歸:

var html = $('body').html(); 
function replaceHTML(haystack, needle, replacement, position){ 
    var index = haystack.indexOf(needle); 
    var newHaystack = haystack.replace(needle, replacement); 
    if(index > - 1){ 
     return replaceHTML(newHaystack, needle, replacement, index); 
    } else { 
     return haystack; 
    } 
} 
$('body').html(replaceHTML($('body').html(), 'string you want to replace', 'replacement string', 0))