我有一定的文字是這樣的:查找某些文本,並添加CSS
<li>certain text</li>
現在我要的顏色,上面寫着「文」片。有了這個,我可以找到完整的文字:
$(function() {
var color = $('*:contains("text")');
color.css("color", "red");
});
的問題是,這種代碼變成完整的文字爲紅色的顏色。我如何才能得到說'文本'的文章,並在那部分上做CSS?
我有一定的文字是這樣的:查找某些文本,並添加CSS
<li>certain text</li>
現在我要的顏色,上面寫着「文」片。有了這個,我可以找到完整的文字:
$(function() {
var color = $('*:contains("text")');
color.css("color", "red");
});
的問題是,這種代碼變成完整的文字爲紅色的顏色。我如何才能得到說'文本'的文章,並在那部分上做CSS?
您需要更改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);
});
小心與*
選擇。你需要了解它會讓你所有的父母li
,包括文檔...
注意'用replace'方法字符串作爲第一個參數只會取代字符串中的第一個出現,因此如果可能有多個出現,則需要使用reglar表達式。 – Guffa
或者使用'string.split(「replace this」)的常用技巧。join(「with this」)' – Archer
@Guffa你說得對。我編輯 –