我有一个像这样的小DIV:
<div id="counter">2</div>
我想使用jquery减去或添加1,导致3或1 ...
在jquery中有没有办法做到这一点?将字符串转换为int可能吗?
答案 0 :(得分:8)
$('#counter').text(function(i, txt) {
return +txt + 1;
});
这样,来自#counter
的内容将转换为整数。这对于数字很有用,但如果出于某种原因,“foo123”之类的内容就会成为NaN
。
另一种解析方法是使用.parseInt()
$('#counter').text(function(i, txt) {
return parseInt(txt, 10) + 1;
});
parseInt()
需要两个参数,一个值和一个基数(基数)。如果在“foo123”上调用它,它将返回“123”。可以说这是一种错误的行为,所以你需要决定你想要的变种。
示例:http://www.jsfiddle.net/Mtvju/
参考:.text()
答案 1 :(得分:4)
$('#counter').text(function(i,txt) { return parseInt(txt, 10) + 1; });
添加示例: http://jsfiddle.net/2uBMy/
减法示例: http://jsfiddle.net/2uBMy/1/
要添加否定支票,您可以这样做:
$('#counter').text(function(i,txt) {
var result = parseInt(txt, 10) - 1;
return (result > 0) ? result : 0;
});
答案 2 :(得分:1)
$('#counter').html( +($('#counter').html()) + 1 );
答案 3 :(得分:1)
var counter = $('#counter');
var value = parseInt(counter.html());
counter.html(value + 1);
答案 4 :(得分:0)
是的,将其转换为int
。使用parseInt将其转换为整数。然后使用jQuery的.html获取<div>
的内容,并用新值替换这些内容。
$("#counter").html(parseInt($("#counter").html(),10) + 1)
$("#counter").html(parseInt($("#counter").html(),10) - 1)
答案 5 :(得分:0)
javascript是松散输入的。您可以使用包含数字和数字的字符串,就像它们在大多数情况下一样。需要注意的一个地方是+
,它既可以添加也可以连接。你需要以某种方式消除歧义。
function subtract()
{
count = $('#counter').html();
if(count > 0)
{
count--;
}
$('#counter').html(count)
}