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()
会成为瓶颈。你手头有什么真实的例子吗?