Почему я получаю [объектный объект] с помощью jQuery?

У меня есть функция, я хочу попробовать суммировать два числа, используя переменную, как указано ниже, но я получаю [объект объекта] вместо общей суммы.

 
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>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
34
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

.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*.

Это может быть придиркой, но "...потому что text() возвращает объект jQuery..." верно только для случая вызова .text() с аргументом.

Andreas 31.05.2019 12:36

Придирки это хорошо - точность гарантирует :) и вы правы. Я обновил ответ, чтобы он был более понятным.

Rory McCrossan 31.05.2019 12:43

Ты ОП? Я запутался. Кроме того, в чем ошибка?

Rory McCrossan 31.05.2019 12:44

Кто ты? Вы не ОП, и я не собираюсь исправлять чей-то случайный ответ.

Rory McCrossan 31.05.2019 12:52

Тот, кто задал вопрос

Rory McCrossan 31.05.2019 12:56

Впрочем, ты здесь не новичок. Вы здесь почти год и уже ответили на 15 вопросов. Вы используете общую учетную запись?

Rory McCrossan 31.05.2019 13:05

Другие вопросы по теме