如何使用jQuery替换span内的文本

时间:2015-10-30 11:08:48

标签: javascript jquery function replacewith

我有这样的跨度:

<span class="savings">92% sale</span>

我想用"25% sale".

更改范围内的内容

我正在尝试这个:

$("span.savings").text(function () {
    return $(this).text().replace("", "25% sale"); 
});

但是这种方法在“92%销售”附近增加了“25%的销售额”。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

您可以使用正则表达式\d{2}来选择2位数字

&#13;
&#13;
$("span.savings").text(function(i, v) {
  return v.replace(/\d{2}/, "25");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="savings">92% sale</span>
&#13;
&#13;
&#13;

更新:如果您只想替换整个文本,则无需回调。只需将第一个参数设置为新文本即可。

&#13;
&#13;
$("span.savings").text("25% sale");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="savings">92% sale</span>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

有关特定于jquery的方法,请参阅其他答案。如果您不需要jquery,则可以执行此操作(对于非常旧的浏览器不安全):

document.getElementsByTagName("span")
        .getElementsByClassName("savings")
        .forEach(function(el) { el.textContent = "25% sale" });

答案 2 :(得分:0)

另一种方法是简单地获取值,替换文本并将其设置回来。

var o = $("span.savings");
o.text(o.text().replace("92", "25"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="savings">92% sale</span>

答案 3 :(得分:0)

你好试试这个

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
<span class="savings">92% sale</span>
<script>
    $("span.savings").text(function (i, v) {
        return v.replace("92", "25");
    });
</script>