Как заменить текст внутри span, используя jQuery
У меня есть промежуток как это:
<span class="savings">92% sale</span>
И я хочу изменить содержимое внутри пролета с "25% sale".
Я пытаюсь это:
$("span.savings").text(function () {
return $(this).text().replace("", "25% sale");
});
Но этот метод добавляет "25% продажи" рядом с "92% продаж".
Как я могу это сделать?
4 ответа
Вы можете использовать регулярные выражения \d{2}
выбрать 2-значный номер
$("span.savings").text(function(i, v) {
return v.replace(/\d{2}/, "25");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="savings">92% sale</span>
ОБНОВЛЕНИЕ: если вы просто хотите заменить весь текст, то нет необходимости в обратном вызове. Просто установите первый параметр в качестве нового текста.
$("span.savings").text("25% sale");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="savings">92% sale</span>
Посмотрите другие ответы для jquery-специфического способа. Если вам не нужен jquery, вы можете сделать это (небезопасно для очень старых браузеров):
document.getElementsByTagName("span")
.getElementsByClassName("savings")
.forEach(function(el) { el.textContent = "25% sale" });
Здравствуйте, попробуйте это
<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>
Другой способ - просто получить значение, заменить текст и вернуть его обратно.
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>