根据 Javascript 中的条件添加到变量值

Adding to variable value on condition in Javascript

我有一个名为 "total" 的变量,我想为其分配一个数字(或价格),然后在选择或选中某些选项时添加到该数字。这是我目前的代码。

这里是设置将添加到的变量的初始值(基本价格)的代码。此代码当前有效。

$('input[name=trimlevel]').change(function(){

      var total = 0;

      if(document.getElementById('basetrim').checked==true) {

              var total = 0;
              var basetrim = 3550.00;
              total = total + basetrim;
              $('#myTotal').html('$' + total);

      }else if(document.getElementById('upgrade').checked==true) {
                  var total = 0; 
              var upgrade = 2400.00;
              total = total + upgrade;
              $('#myTotal').html('$' + total);


       }else {
             $('#myTotal').html('$' + total);
           }


    });

这是用于 "add to" 变量值的代码示例。这不起作用。

$('input[name=leather]').change(function(){

      if(document.getElementById('leather).checked == true) {
             var leather = 180.00;
             total = total + leather;
             $('#myTotal').html('$' + total);
      }
});

这里是HTML供参考

<div class="modelsel">
           <h2>1. SELECT MODEL</h2> <br>
           <label for="basetrim">BASE MODEL</label> 
           <input id="basetrim" type="radio" name="trimlevel" value="2400.00">
           <label for="upgrade">UPGRADED MODEL</label> 
           <input id="upgrade" type="radio" name="trimlevel" value="3550.00">

 </div>

<div class="inside">
          <h2>3. BASE MODEL ADD-ONS</h2><br>
          <input type="checkbox" value="180.00" id="leather" name="leather" />
           <label for="leather">Leather Seat (+ 0.00)</label><br>
</div>

<div id="myTotal"></div>

我对 Javascript 比较陌生,为此苦苦挣扎了几个小时。任何帮助表示赞赏。提前致谢。

解决方案已经在评论中了。功能的上下文不同。您可以在函数之外定义总计,也可以为您的行为使用一个对象。

var someObject = {};

在您的函数中,您可以使用点符号编写。

someObject.total = 10;
$('input[name=trimlevel]').change(function(){
  var total = 0;
  if($(this).checked==true)) {
    total = total + $(this).val();
  }
  $('#myTotal').html('$' + total);
});

只需要进行一些修改就可以正常工作:

第一个,这里有错别字:

if(document.getElementById('leather).checked == true) {

您错过了一个 ' 所以用它代替:

if(document.getElementById('leather').checked == true) {

其次,从函数中定义 var total 并使其可供所有函数使用。如果您在 ready 函数中有您的方法,您可以在那里定义总计。还要删除函数内部的 total 定义,否则您将不会使用 ready 中定义的那个。

第三,当用户点击复选框时,你总是在增加价值(不知道这是否是你想要的)。在这个fiddle中,我根据复选框的状态增加或减少总金额。

考虑编写一个全面的命名函数,将可能对您的总数有所贡献的所有内容相加:

function calculate() {
    var total = 0;

    if(document.getElementById('basetrim').checked) {
        total = total + 3550.00;
    } else if(document.getElementById('upgrade').checked) {
        total = total + 2400.00;
    }

    if(document.getElementById('leather').checked) {
        total = total + 180.00;
    }

    // further additions here 
    // further additions here 
    // further additions here 

    $('#myTotal').html('$' + total);
});

然后在必要时附加该命名函数作为事件处理程序:

$('input[name=trimlevel]').change(calculate);
$('input[name=leather]').change(calculate);
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here