我有这样的跨度:
<span class="savings">92% sale</span>
我想用"25% sale".
我正在尝试这个:
$("span.savings").text(function () {
return $(this).text().replace("", "25% sale");
});
但是这种方法在“92%销售”附近增加了“25%的销售额”。
我该怎么做?
答案 0 :(得分:2)
您可以使用正则表达式\d{2}
来选择2位数字
$("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;
更新:如果您只想替换整个文本,则无需回调。只需将第一个参数设置为新文本即可。
$("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;
答案 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>