jQuery添加字符串而不是串联

jQuery adding strings and not concatenating

本文关键字:添加 字符串 jQuery      更新时间:2023-09-26

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

我的选择列表是:

<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将当前值作为整数,并根据需要进行加减运算。

Tom

欢迎使用javascript!

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

使用整数而不是字符串。

  • 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);    
});

尝试使用parseInt函数http://www.w3schools.com/jsref/jsref_parseint.asp

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

有关parseInt的更多信息http://www.javascripter.net/faq/convert2.htm#parseInt