将类应用于单词的所有出现

时间:2015-04-19 08:23:50

标签: jquery html css

这是我的JS文件:

$(document).ready(function () {
    $("div:contains('Fail')").each(function () {
        $(this).html($(this).html().replace("Fail", "<span class='red'>Fail</span>"));
    });
    $(".title").html(function(i,v){
        return v.replace("Pass","<span class='red'>Pass</span>");
    });
});

和HTML:

 <div class='title'>
     <table border="1" class="dataframe">
         ....
         .....
         <td>Pass</td>
         <td>0.55</td>
         <td>Pass</td>
         <td>Pass</td>
      </table>
  </div>

当我运行这个&#39; red&#39; class仅适用于第一次出现pass和fail。如何将其应用于div标记中的所有匹配项。

1 个答案:

答案 0 :(得分:1)

您需要使用正则表达式替换global match modifier g

$(document).ready(function () {
    $("div:contains('Fail')").each(function () {
        $(this).html($(this).html().replace(/Fail/g, "<span class='red'>Fail</span>"));
    });
    $(".title").html(function (i, v) {
        return v.replace(/Pass/g, "<span class='green'>Pass</span>");
    });
});
.red {color: red;}
.green {color: green;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='title'>
    <table border="1" class="dataframe">
        <td>Pass</td>
        <td>0.55</td>
        <td>Fail</td>
        <td>Pass</td>
    </table>
</div>

顺便说一句,使用像green类这样的“Pass”是有意义的,就像我在上面的演示中所做的那样。