尝试添加时,包含数字的jQuery变量返回为NaN

尝试添加时,包含数字的jQuery变量返回为NaN,jquery,Jquery,我试图抓取跨度中包含的两个数字(这些数字由选择菜单中的选项决定),并将它们相加。然后,我需要将这个数字填充到另一个显示总数的跨度中。跨距内的数字是有效的数字,但每次单击.getTotal时,结果都返回为NaN。有什么想法吗 $(".bundelTotalHeading").hide(); var pestTotal = $('.programCostPestControl').val(); var lawnTotal = $('.programCostLawnCare').val();

我试图抓取跨度中包含的两个数字(这些数字由选择菜单中的选项决定),并将它们相加。然后,我需要将这个数字填充到另一个显示总数的跨度中。跨距内的数字是有效的数字,但每次单击.getTotal时,结果都返回为NaN。有什么想法吗

 $(".bundelTotalHeading").hide();
 var pestTotal = $('.programCostPestControl').val();
 var lawnTotal = $('.programCostLawnCare').val();
 var total = parseFloat(pestTotal) + parseFloat(lawnTotal);
 $('.getTotal').click(function () {
       if(isNaN(total)) {
              var total = 'CALL FOR PRICING';
       }  
       $(".totalCost").text(total);
       $(".bundelTotalHeading").show();
 });

您需要将变量声明移动到click处理程序中,并获取要使用的范围内的文本。text()而不是.val():


试试.text()而不是.val()当然了!!我快看不见密码了!!非常感谢!!仅供参考,您可以将
isNaN
换成
total!=总计
。这是一个鲜为人知的技巧,因为
NaN
不等于任何其他值,包括它本身。据报道,它的速度也要快得多。无论哪种方式+1。。。
$(".bundelTotalHeading").hide();

 $('.getTotal').click(function () {
     var pestTotal = $('.programCostPestControl').text();
     var lawnTotal = $('.programCostLawnCare').text();
     var total = parseFloat(pestTotal) + parseFloat(lawnTotal);
       if(isNaN(total)) {
              var total = 'CALL FOR PRICING';
       }  
       $(".totalCost").text(total);
       $(".bundelTotalHeading").show();
 });