У меня есть функция, я хочу попробовать суммировать два числа, используя переменную, как указано ниже, но я получаю [объект объекта] вместо общей суммы.
var convenienceCharge = 100;
var totalPgCost = 500;
var subTotalPgCost = 0;
function totalPgCostFunction() {
subTotalPgCost += $('.subTotalPgCost').text(convenienceCharge + totalPgCost + 18);
alert(subTotalPgCost);
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick = "totalPgCostFunction();">Click</button>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


.text вернет объект. вот почему вы видите [объект объект]
Вам нужно сделать это так.
var convenienceCharge = 100;
var totalPgCost = 500;
var subTotalPgCost = 0;
function totalPgCostFunction() {
subTotalPgCost += convenienceCharge + totalPgCost + 18;
$('.subTotalPgCost').text(subTotalPgCost);
alert(subTotalPgCost);
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick = "totalPgCostFunction();">Click</button>
<div class = "subTotalPgCost"></div>Проблема в том, что когда вы вызываете сеттер text(), он возвращает объект jQuery, следовательно, результат, который вы видите.
Чтобы это работало, вам нужно разделить вычисления и text() логику, например:
var convenienceCharge = 100;
var totalPgCost = 500;
var subTotalPgCost = 0;
$(function() {
$('button').click(function() {
subTotalPgCost += convenienceCharge + totalPgCost + 18;
$('.subTotalPgCost').text(subTotalPgCost);
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Click</button>
<div class = "subTotalPgCost"></div>Также обратите внимание на использование в этом примере ненавязчивого обработчика событий вместо устаревшего атрибута on*.
Придирки это хорошо - точность гарантирует :) и вы правы. Я обновил ответ, чтобы он был более понятным.
Ты ОП? Я запутался. Кроме того, в чем ошибка?
Кто ты? Вы не ОП, и я не собираюсь исправлять чей-то случайный ответ.
Тот, кто задал вопрос
Впрочем, ты здесь не новичок. Вы здесь почти год и уже ответили на 15 вопросов. Вы используете общую учетную запись?
Это может быть придиркой, но "...потому что text() возвращает объект jQuery..." верно только для случая вызова
.text()с аргументом.