我正在从选择列表中添加值(或减去),我似乎无法使它不连接字符串。
我的选择列表是:
<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
将当前值作为整数,并根据需要进行加减。
汤姆
答案 0 :(得分:5)
欢迎使用javascript!
alert(1+1); -> 2
alert("1"+"1"); -> 11
alert(Number("1")+Number("1")); -> 2
答案 1 :(得分:3)
使用整数而不是字符串。
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);
});
答案 2 :(得分:1)
尝试使用parseInt函数 http://www.w3schools.com/jsref/jsref_parseint.asp
答案 3 :(得分:1)
使用parseInt()
将字符串格式的值转换为整数,然后对它们执行算术运算。
有关parseInt http://www.javascripter.net/faq/convert2.htm#parseInt
的更多信息