更改div内的文字颜色,$%

时间:2013-04-28 14:54:11

标签: jquery regex

如果我有以下div:

<div id="target">
red <br>

blue <br>

green <br>

</div>

我想添加一个更改每个颜色字的脚本,使其颜色为红色(“红色”将为红色等等。)

网站上的解决方案是:

var target=$('#target');
target.html(target.html().replace(/red/,"<span style='color:red'>$&</span>").replace(/blue/,"<span style='color:blue'>$&</span>").replace(/green/,"<span style='color:green'>$&</span>"));

有人可以解释一下吗?在我的解决方案中,我添加了具有正确文本颜色的跨度,并在跨度内写下了单词(例如红色)。但在这个解决方案中,他们添加了这些符号,$%,我不明白它是如何工作的。

4 个答案:

答案 0 :(得分:1)

$&代表比赛。例如,red的{​​{1}}

答案 1 :(得分:0)

此处$&代表比赛

实施例:red for /red/

答案 2 :(得分:0)

首先,$&是正则表达式。 它返回任何正则表达式搜索中的最后匹配字符

red

的此方案/red/

答案 3 :(得分:-1)

您可以将此解决方案替换为REGX

$(function(){

    var xStr="";

    $.each($("#target").html().split("<br>"),function(xIndex,xVal)
           {
               if(xVal.trim() !== "")
               {
                   xStr += "<span style='color:"+ xVal +"'>"+ xVal +"</span><br>"
               }
           });

    $("#target").html(xStr);

});

参考:$.eachSplit()

演示:Fiddle