Как можно удалить символы в одинаковых классах без замещения с помощью .text()? код внутри

121
22 марта 2018, 10:31

Есть код который удаляет определённые символы (в частности "руб") в одинаковых классах.

var str = $('.block').text();
var result = str.match( /руб/i );
str = str.split(result)[0];
$('.block').text(
function() {
$(this).text(str);
}
);

https://jsfiddle.net/ms2d2nnd/

проблема в том что происходит замещение текста из первого класса во всех остальных. как можно это изменить что бы текст не замещался?

Answer 1

[...document.getElementsByClassName('block')].forEach(el =>  
  el.innerHTML = el.innerHTML.replace('руб', '') 
);
<div class="block">123 руб</div> 
<div class="block">321 руб</div>

Answer 2

В данном случае неверно используется метод .text().

Геттер возвращает все тексты склеенные в один.

Но сеттер проходит по каждому элементу в наборе.

Далее неверно используется сеттер принимающий функцию.

Вместо кода указанного в вопросе, надо было просто вернуть новое значение для свойства.

В итоге код может выглядеть так:

$('.block').text(function(index, oldText) {
    return oldText.split( /руб/i )[0]
});
READ ALSO
Работа с ответом REST API

Работа с ответом REST API

Доброго времени сутокРаботаю с vue, получаю ответы от сервера следующего вида:

163
Как выделить первую ячейку в первой строке в webix datatable

Как выделить первую ячейку в первой строке в webix datatable

Здравствуйте! Можете подсказать, как выделить первую ячейку таблицы datatable Параметры такие:

156
Поломался JSON.parse

Поломался JSON.parse

Добрый день! Ситуация такая: обрабатываю форму и на ее основании создаю ОбъектПеред отправкой AJAX- стрингую его JSON

157
Ошибка JSON.parse при переходе в поле на вторую строчку. Как обойти?

Ошибка JSON.parse при переходе в поле на вторую строчку. Как обойти?

Для построения и инициализации Metronic Datatable использую в коде JSONparser, данные парсятся с джанговской админки и что бы исключить ошибку с переходом...

145