Javascript jQuery添加字符串而不是连接

Javascript jQuery添加字符串而不是连接,javascript,jquery,Javascript,Jquery,我正在从选择列表中添加值(或减法),但我似乎无法使它不连接字符串 我的选择列表是: <li class="extraHeight"> <asp:Image runat="server" CssClass="iconImageMove" ID="Image13" ImageUrl="~/images/icons/ABabyChg_Off.png" /> <div class="flipWidth"> <select name

我正在从选择列表中添加值(或减法),但我似乎无法使它不连接字符串

我的选择列表是:

<li class="extraHeight">
    <asp:Image runat="server" CssClass="iconImageMove" ID="Image13" ImageUrl="~/images/icons/ABabyChg_Off.png" />
    <div class="flipWidth">
        <select name="access" class="change" id="ABabyChg_Off"  runat="server">
            <option value="16777216">Off</option>
            <option value="16777216">On</option>
        </select>
     </div> <br /> <p class="noWrap">Accessible baby changing facilities</p>
</li>

<li class="extraHeight">
    <asp:Image runat="server" CssClass="iconImageMove" ID="Image14" ImageUrl="~/images/icons/carpark_off.png" />
    <div class="flipWidth">
        <select name="access" class="change" id="carpark_off"  runat="server">
            <option value="256">Off</option>
            <option value="256">On</option>
        </select>
     </div> <br /> <p class="noWrap">Accessible Car parking facilities</p>
</li>
  • 关 在…上

  • 关 在…上

    无障碍停车设施

  • 我的javascript是:

    <script>    
    
            $("select").change(function () {
    
               var currentAccess = "0";
               var currentText = $(":selected", this).text();
               var value = $(this).val()
               alert(currentAccess);
                if(currentText == "Off")
    
                        {
                            currentAccess -= value;
                        }  
                if(value != "0") {        
                if(currentText == "On")
                         {
                            currentAccess += value;
                         }
                }
    
                  $.cookie("accessReqs",  currentAccess, { expires: 24 });
                  alert(currentAccess);
    
                })
    
        </script>
    
    
    $(“选择”).change(函数(){
    var currentAccess=“0”;
    var currentText=$(“:selected”,this).text();
    var值=$(this.val()
    警报(当前访问);
    如果(当前文本==“关闭”)
    {
    currentAccess-=值;
    }  
    如果(值!=“0”){
    如果(当前文本==“打开”)
    {
    currentAccess+=值;
    }
    }
    $.cookie(“accessReqs”,currentAccess,{expires:24});
    警报(当前访问);
    })
    
    基本上,我试图让
    currentAccess
    将当前值作为一个整数,并根据需要进行加法和减法


    Tom使用整数而不是字符串

    • currentAccess
      初始化为零
    • -=
      运算符几乎不存在歧义,但是
      +=
      运算符可以表示“连接字符串”或“添加数字”
    • 使其更加明显,如使用
      *1
      (乘以1)
    更新代码:

    $("select").change(function () {
    
        var currentAccess = 0; // Instead of "0"
        var currentText = $(":selected", this).text();
        var value = $(this).val() * 1;
        alert(currentAccess);
        if (currentText == "Off")
        {
            currentAccess -= value;
        }
        if (value != 0) {
            if (currentText == "On") {
                currentAccess += value;
            }
        }
    
        $.cookie("accessReqs", currentAccess, {
            expires: 24
        });
        alert(currentAccess);    
    });
    
    欢迎使用javascript

    alert(1+1); -> 2
    alert("1"+"1"); -> 11
    alert(Number("1")+Number("1")); -> 2
    

    尝试使用parseInt函数

    使用
    parseInt()
    将字符串格式的值转换为整数,然后对其执行算术运算


    关于PARSETIN < /P>的更多信息,请考虑<代码> * 1 (而不是No./PARSETIN)不良风格。@ THG435 [引用需要]。code>Number是一个函数,比普通的

    *1
    要多得多。谢谢。当我将值添加到cookie中,然后将cookie读回,它再次将其包含,并将其作为值释放。我试过parseInt,但似乎不行much@TomBeech您是否已由我应用所有更改?当
    currentAccess
    是字符串时,
    +=value
    将连接字符串,而不管
    值的类型如何。您可以使用
    currentAccess=+currentAccess+1*值取而代之。请看一下所有数字转换方法之间的比较。@RobW:我无法想象一个javascript应用程序中
    number()
    会成为瓶颈。你手头有什么真实的例子吗?