我需要用類似<span class="highlight">My</span> <span class="highlight">Phrase</span>
的東西來替換某個特定短語的任何實例,例如My Phrase
。如何用jQuery替換部分字符串,然後用圓括號包圍每個字詞的標籤
我很滿意jQuery中的小東西,但這個只是讓我進入圈子。我已經找到了一些在線部分解決方案,但不能讓事情一起工作。
幫助,將不勝感激。
我需要用類似<span class="highlight">My</span> <span class="highlight">Phrase</span>
的東西來替換某個特定短語的任何實例,例如My Phrase
。如何用jQuery替換部分字符串,然後用圓括號包圍每個字詞的標籤
我很滿意jQuery中的小東西,但這個只是讓我進入圈子。我已經找到了一些在線部分解決方案,但不能讓事情一起工作。
幫助,將不勝感激。
試試這個。
var str = "...My Phrase....";
str = str.replace(/My Phrase/g, '<span class="highlight">My</span> <span class="highlight">Phrase</span>');
你也可以看看這個鏈接的信息。
http://www.tizag.com/javascriptT/javascript-string-replace.php
我的話很難看。我更希望OP會喜歡某些內容不需要硬編碼到程序邏輯中的短語。 – Alnitak
@Alnitak - 我同意你的意見。 – ShankarSangoli
我想你會想看看jQuery的.wrap()函數。
這基本上可以讓你包裹在您選擇的HTML元素的jQuery的陣列的部分,看看這裏:
你可能需要一些更芬克實際得到的作品進入格式你想,但你可以例如做string.split('')將一個html數組分解爲組件單詞,然後用你的html'wrap()'這個單詞。
的僞代碼:
var myPhrase = "My Phrase";
$.each(myPhrase.split(' ').slice(0,-1), function(index, item) {
item.wrap('<span class=\"highlight\"/>');
});
但是也有一些離開了你的問題的一些細節,但假設字符串時,始終僅文本是簡單的把它拆分在空間和標籤包裹。有jQuery的wrap
這也可以做到這一點。我也會給你一個例子。但在這種簡單的情況下,這是一個直截了當的答案。
var words = $('body').text().split(' ');
var wrappedText = '';
for (var i = 0; i < words.length; i++) {
wrappedText += '<span>'+words[i]+'</span> ';
}
$('body').html(wrappedText);
請告訴我們你已經嘗試 - 上下文將幫助回答了這個問題。例如, – Alnitak
是現有文本中唯一一個HTML標籤的內容嗎? – Alnitak
您是否偶然將此作爲帶有ajax調用的自動完成的一部分? –