0

我有这样一段文字:

<li>certain text</li>

现在我想给写着“文本”的那块上色。有了这个,我可以找到完整的文本:

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

问题是这段代码将完整的文本变成了红色。我怎样才能只得到写着“文本”的那部分并在那部分做 css?

4

2 回答 2

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);
});

示范

小心*选择器。你需要明白它会让你所有的父母li,包括文件......

于 2012-11-13T12:34:29.680 回答
0

您可以这样做,但未经测试:

$(function() {
    var color = $('body').text('text');
    color.css("color", "red");
});
于 2012-11-13T12:35:49.917 回答