jQuery添加字符串而不是连接

TMB*_*B87 5 javascript jquery

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

我的选择清单是:

<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>
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

基本上我试图currentAccess将当前值作为整数并根据需要进行加减.

汤姆

geo*_*org 5

欢迎使用javascript!

alert(1+1); -> 2
alert("1"+"1"); -> 11
alert(Number("1")+Number("1")); -> 2
Run Code Online (Sandbox Code Playgroud)


Rob*_*b W 4

使用整数而不是字符串。

  • 初始化currentAccess为零。
  • -=运算符几乎没有任何歧义,但该
    +=运算符可以表示“连接字符串”或“添加数字”。
  • 为了使其更明显,请将变量转换为数字,例如使用*1(times 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);    
});
Run Code Online (Sandbox Code Playgroud)