jQuery添加字符串而不是连接

时间:2012-02-09 10:15:06

标签: 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>

我的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>

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

汤姆

4 个答案:

答案 0 :(得分:5)

欢迎使用javascript!

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

答案 1 :(得分:3)

使用整数而不是字符串。

  • currentAccess初始化为零。
  • -=运算符留下了很少的歧义,但是 +=运算符可以表示“连接字符串”或“添加数字”。
  • 为了更明显,convert the variable to a number,例如使用*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);    
});

答案 2 :(得分:1)

答案 3 :(得分:1)

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

有关parseInt http://www.javascripter.net/faq/convert2.htm#parseInt

的更多信息