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>

ドキュメント内で何度も出現する単語「line」にのみ異なるCSSを適用し、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

'line' ワードにスタイルを直接適用することはできません。必要なのは、コンテンツを解析し、「行」をいくつかのタグにラップすることです。たとえば、その後、css のいくつかのスタイルをこのクラスに適用できます。これは、php と javascript の両方で実行できます。

于 2012-11-25T08:58:51.817 に答える