Есть код который удаляет определённые символы (в частности "руб") в одинаковых классах.
var str = $('.block').text();
var result = str.match( /руб/i );
str = str.split(result)[0];
$('.block').text(
function() {
$(this).text(str);
}
);
https://jsfiddle.net/ms2d2nnd/
проблема в том что происходит замещение текста из первого класса во всех остальных. как можно это изменить что бы текст не замещался?
[...document.getElementsByClassName('block')].forEach(el =>
el.innerHTML = el.innerHTML.replace('руб', '')
);
<div class="block">123 руб</div>
<div class="block">321 руб</div>
В данном случае неверно используется метод .text().
Геттер возвращает все тексты склеенные в один.
Но сеттер проходит по каждому элементу в наборе.
Далее неверно используется сеттер принимающий функцию.
Вместо кода указанного в вопросе, надо было просто вернуть новое значение для свойства.
В итоге код может выглядеть так:
$('.block').text(function(index, oldText) {
return oldText.split( /руб/i )[0]
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости