我有一个函数,我想使用下面给出的变量尝试对两个数字求和,但是我正在获取[object object]而不是总和。
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>
答案 0 :(得分:2)
.text
将返回一个对象。这就是为什么您看到[object object]
您需要这样做。
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>
答案 1 :(得分:2)
问题是因为当您调用text()
的setter时,它将返回一个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*
属性。