2012-01-23 66 views
3

我需要用類似<span class="highlight">My</span> <span class="highlight">Phrase</span>的東西來替換某個特定短語的任何實例,例如My Phrase如何用jQuery替換部分字符串,然後用圓括號包圍每個字詞的標籤

我很滿意jQuery中的小東西,但這個只是讓我進入圈子。我已經找到了一些在線部分解決方案,但不能讓事情一起工作。

幫助,將不勝感激。

+0

請告訴我們你已經嘗試 - 上下文將幫助回答了這個問題。例如, – Alnitak

+0

是現有文本中唯一一個HTML標籤的內容嗎? – Alnitak

+0

您是否偶然將此作爲帶有ajax調用的自動完成的一部分? –

回答

1

我想你會想看看jQuery的.wrap()函數。

這基本上可以讓你包裹在您選擇的HTML元素的jQuery的陣列的部分,看看這裏:

http://api.jquery.com/wrap/

你可能需要一些更芬克實際得到的作品進入格式你想,但你可以例如做string.split('')將一個html數組分解爲組件單詞,然後用你的html'wrap()'這個單詞。

的僞代碼:

var myPhrase = "My Phrase"; 
$.each(myPhrase.split(' ').slice(0,-1), function(index, item) { 
    item.wrap('<span class=\"highlight\"/>'); 
}); 
1

但是也有一些離開了你的問題的一些細節,但假設字符串時,始終僅文本是簡單的把它拆分在空間和標籤包裹。有jQuery的wrap這也可以做到這一點。我也會給你一個例子。但在這種簡單的情況下,這是一個直截了當的答案。

http://jsfiddle.net/tBR2r/

var words = $('body').text().split(' '); 
var wrappedText = ''; 
for (var i = 0; i < words.length; i++) { 
    wrappedText += '<span>'+words[i]+'</span> '; 
} 
$('body').html(wrappedText); 
相關問題