我创建了一个函数,它点击隐藏了div的第一个子节点,并用另一个替换它......现在查询点击alert(divno)
如果divno为1则返回2但它正在返回11
$('#rightarrow').click(function(){
var getdivname = $('#dcontainer').find("div").first();
var divid = getdivname.attr("id");
var divno = divid.match(/[0-9]+/);
$('#d'+divno).hide();
divno=divno+1;
$('#d'+divno).appendTo('#dcontainer');
alert(divno);
});
如果我,使用parseInt(divid,10)它返回NaN
答案 0 :(得分:3)
只需使用Unary +将divno
的值转换为整数而不是字符串:
divno=+divno+1;
一元加运算符在其操作数之前,并计算其操作数,但尝试将其转换为数字(如果尚未)。例如,y = + x取x的值并将其赋给y;也就是说,如果x为3,y将得到值3,x将保留值3;但如果x是字符串“3”,y也会得到值3.
我们可以通过尝试以下测试来证明这一点:
"1" + 1 // "11"
+"1" + 1 // 2
答案 1 :(得分:2)
在执行parseInt
之前,您需要divno
+1
:
divno=parseInt(divno)+1;
JavaScript将您的divno
解释为字符串(因为.match
返回字符串)而不是整数。这样做会强制JavaScript识别它是一个整数而不是字符串。