2

可能重复:
在 jQuery 中查找文本字符串并将其设为粗体

假设如果我有一个这样的 html 文档

<div>
hi this is one line<br>
<p>This is second line</p>
<p>This 'word' is within quote</p>
<p>Another 'lorem ipsum' in quote</p>
</div>

我如何将不同的 CSS 仅应用于在我的文档中多次出现的单词“line”,以及对使用 jQuery 出现在引号内的所有单词使用不同的 CSS。某种模式匹配和应用 css

有任何可用的脚本吗?

4

2 回答 2

2

您可以使用 JQuery包含选择器,如下所示:

http://jsfiddle.net/z4ZwF/

function replaceText(textToSearch,classToApply)
{
  $('div').html($('div').html().replace(new RegExp(textToSearch, 'g'),"<span class='"+classToApply+"'>"+textToSearch+"</span>"));
}

示例:replaceText("'lorem ipsum'",'red')replaceText("line",'red')

编辑

在搜索和替换中添加引号包装:http: //jsfiddle.net/z4ZwF/3/

function replaceText(textToSearch,classToApply,searchAndWrapQuote)
{
    searchAndWrapQuote = searchAndWrapQuote || false;
    quote = (searchAndWrapQuote) ? "'" : "";

  $('div').html($('div').html().replace(new RegExp(quote+textToSearch+quote, 'g'),"<span class='"+classToApply+"'>"+quote+textToSearch+quote+"</span>"));
}

replaceText("lorem ipsum",'red',true)
于 2012-11-25T08:50:50.647 回答
0

您不能将任何样式直接应用于“行”字。您需要的是解析内容并将您的“行”包装到某个标签 - 例如,之后您可以将 CSS 中的一些样式应用于此类。您可以在 php 和 javascript 中执行此操作。

于 2012-11-25T08:58:51.817 回答