JQuery - 更改文本中字符串的颜色,忽略之间的字符串

时间:2016-09-05 06:16:37

标签: javascript jquery html css web

我需要更改文本中特定子字符串的颜色。 文字如下:

SOME TE<br>
XT IS HER<br>
E.

我厌倦了jquery的.replace()函数,问题是,正如你在上面看到的那样,文本被那些<br>分开了。我怎么能“忽略”他们呢? 例如,我想用TEXT

替换字符串<span class="color-red">TEXT</span>

有没有人知道如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

不需要jQuery。虽然我根本没有对此进行测试,但可能需要进行调整。

£

答案 1 :(得分:0)

我认为一个好主意可能会像下面这样:

  1. 修改所有文本节点并将其包装在span§
  2. 重新插入所有代码
  3. var ALL_TAGS_REGEX = /(.+)(<{1}\/{0,1}.+>{1})/g;
    
    document.addEventListener("DOMContentLoaded", function() {
      document.body.innerHTML = document
        .body
        .innerHTML
        .replace(ALL_TAGS_REGEX, '<span class="highlight">$1</span>$2')
      ;
    });
    .highlight { background: cyan; }
    I am a string,<br>
    <div> something else but no text node</div>
    Other text nodes at libitum

答案 2 :(得分:-1)

&LT; br&gt;标签是中断的,颜色不适用于&lt; br&gt;在最终的html渲染时,这不会被视为普通文本