Здесь есть две проблемы. Во-первых, вы получаете ошибку, потому что text()
возвращает строку, а toFixed()
- это метод числовых типов. Вторая проблема заключается в том, что return
в операторе each()
не обновляет содержимое элемента.
Чтобы исправить это, вы можете использовать parseFloat()
для преобразования строки в число, и вы можете также предоставьте функцию для text()
, которая затем возвращает новое значение. Это исключает необходимость явного вызова each()
. Попробуйте это:
$('.dashboard__currency').text((i, t) => parseFloat(t).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="dashboard__currency">10205.99</span><br />
<span class="dashboard__currency">15232323.00</span><br />
<span class="dashboard__currency">193235</span>