Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery-更改文本中字符串的颜色,忽略<;br>';介于_Javascript_Jquery_Html_Css_Web - Fatal编程技术网

Javascript JQuery-更改文本中字符串的颜色,忽略<;br>';介于

Javascript JQuery-更改文本中字符串的颜色,忽略<;br>';介于,javascript,jquery,html,css,web,Javascript,Jquery,Html,Css,Web,我需要更改文本中特定子字符串的颜色。 文本如下所示: SOME TE<br> XT IS HER<br> E. 一些TE XT是她的 E 我厌倦了jquery中的.replace()函数,它的问题是,正如您在上面看到的,文本被拆分为。我怎么能“忽略”它们? 例如,我想将字符串TEXT替换为TEXT 有人知道如何解决这个问题吗?标签是换行的,颜色不适用于文本,这不会被视为普通文本,而最终html呈现不需要jQuery。虽然我根本没有测试它,所以它可能需要调整 var c

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

SOME TE<br>
XT IS HER<br>
E.
一些TE
XT是她的
E
我厌倦了jquery中的
.replace()
函数,它的问题是,正如您在上面看到的,文本被拆分为

。我怎么能“忽略”它们? 例如,我想将字符串
TEXT
替换为
TEXT


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


标签是换行的,颜色不适用于
文本,这不会被视为普通文本,而最终html呈现不需要jQuery。虽然我根本没有测试它,所以它可能需要调整

var customReplace = function(str, subStr, color) {
    var words = str.split(' ');
    for (var i = words.length - 1; i >= 0; i--) {
        var word = words[i].replace(/<br>/g, '');
        if (word === subStr) {
            words[i] = '<span class="color-' + color + '">' + words[i] + '</span>';
        }
    }

    return words.join('');
}
var customReplace=函数(str、subStr、color){
变量词=str.split(“”);
对于(var i=words.length-1;i>=0;i--){
var word=words[i]。替换(/
/g',); if(word==subStr){ 单词[i]=''+单词[i]+''; } } 返回单词。join(“”); }
我认为一个好主意可能是如下所示:

  • 精细化所有文本节点,并将它们包装在span§中
  • 重新插入所有标签
  • var-ALL_-TAGS_-REGEX=/(.+)({1})/g;
    document.addEventListener(“DOMContentLoaded”,function()){
    document.body.innerHTML=文档
    .身体
    .innerHTML
    .替换(所有标签和正则表达式,$1$2')
    ;
    });
    
    。突出显示{背景:青色;}
    我是一个字符串,
    其他内容,但没有文本节点
    libitum上的其他文本节点
    。这是为什么你首先需要br?@madalinivascu这是因为design@Ish谢谢你的参考,但是这个问题不是很有帮助,因为他们没有单词之间的问题。尝试从字符串中删除
    或任何其他标记,然后替换为span谢谢你的回复,但你是什么意思?我的意思是
    不是文本,为什么你担心它的文本颜色呢?因为,我想替换一个洞字,但这个字被
    打断了。这使得替换单词变得很困难,因为例如.replace(“text”,“other text”)不会替换我的“text”,因为它被一个
    ->“te
    xt”破坏了。哦,问题是替换文本时忽略了
    ?emty()会刷新html元素的内容,例如,如果abc
    foo bar,它会将其置为空。现在您可以自由添加任何内容/文本作为孩子!哇,看起来不错。但我到底该如何使用它呢?什么是str,什么是subStr?Woops刚刚意识到这可能非常简单subStr是您试图查找和着色的字符串。Str是整个字符串,例如
    SOME TE
    XT是她的
    e.
    只需为Str传入
    innerHTML
    ,并将
    innerHTML
    设置为此函数的输出。我尝试了此代码
    var textContent=$(“.text-3-colors p”).text();警报(customReplace(文本内容,“saf”、“红色”))但它给了我一个错误:无法读取Undeiendso的属性replace,现在没有错误,但是subStr不会被涂成红色?