jquery做简单的数学?

时间:2010-11-15 18:47:12

标签: jquery

我有一个像这样的小DIV:

<div id="counter">2</div>

我想使用jquery减去或添加1,导致3或1 ...

在jquery中有没有办法做到这一点?将字符串转换为int可能吗?

6 个答案:

答案 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)

Try it here!

答案 5 :(得分:0)

javascript是松散输入的。您可以使用包含数字和数字的字符串,就像它们在大多数情况下一样。需要注意的一个地方是+,它既可以添加也可以连接。你需要以某种方式消除歧义。

function subtract()
{
   count = $('#counter').html();
   if(count > 0)
   {
     count--;
   }
   $('#counter').html(count)
}