2012-11-13 107 views
0

我有一定的文字是這樣的:查找某些文本,並添加CSS

<li>certain text</li> 

現在我要的顏色,上面寫着「文」片。有了這個,我可以找到完整的文字:

$(function() { 
    var color = $('*:contains("text")'); 
    color.css("color", "red"); 
}); 

的問題是,這種代碼變成完整的文字爲紅色的顏色。我如何才能得到說'文本'的文章,並在那部分上做CSS?

回答

4

您需要更改li內容,因爲瀏覽器只能將樣式應用於元素,而不是單詞。

你可以這樣做:

$('li:contains("text")').each(function(){ 
    var licontent = $(this).html(); 
    licontent = licontent.replace(new RegExp("text", "g"), '<span style="color:red">text</span>'); 
    $(this).html(licontent); 
}); 

Demonstration

小心與*選擇。你需要了解它會讓你所有的父母li,包括文檔...

+0

注意'用replace'方法字符串作爲第一個參數只會取代字符串中的第一個出現,因此如果可能有多個出現,則需要使用reglar表達式。 – Guffa

+1

或者使用'string.split(「replace this」)的常用技巧。join(「with this」)' – Archer

+0

@Guffa你說得對。我編輯 –

0

你可以做到這一點的方式,但它沒有進行測試:

$(function() { 
    var color = $('body').text('text'); 
    color.css("color", "red"); 
}); 
+0

http://jsbin.com/izisin/1/在這裏找到它 – Jai

+0

它不適合我。我失去了動態創建的數據,被替換爲'文本'這個詞 – Youss

+0

@JaiPSah'$('body')。text('text')'將文本改爲'text'。見http://api.jquery.com/text/ –