将字符串转换为数字并加一个


94

我想将从id中获得的值转换为数字并添加一个值,然后将新值传递给dosomething()函数以使用。当我尝试这个并且值是1时,我得到11而不是2。

$('.load_more').live("click",function() { // When user clicks
    var newcurrentpageTemp = $(this).attr("id") + 1;// Get id from the hyperlink
    alert(parseInt(newcurrentpageTemp));
    dosomething();
});

Answers:


189

假设您是正确的,并且您的ID是一个正确的数字(没有任何其他文本),则应解析ID,然后在其中添加一个:

var currentPage = parseInt($(this).attr('id'), 10);
++currentPage;

doSomething(currentPage);

1
@Justin Niessner,您也可以只+ 1在第一行的末尾执行一个操作,而不是++在第二行使用一个预递增器来使它更紧凑。
克里斯·斯诺登

@Chris-您可以,但是我希望该示例明确说明首先进行的是哪个操作。
贾斯汀·尼斯纳

@Justin Niessner,很公平。方括号也可以帮助阐明执行顺序。+1是一个明确的快速答案。赌我吧。
克里斯·斯诺登

@Niklas,请参阅我的答案以方括号括起来的选项。
克里斯·斯诺登

@JustinNiessner谢谢!
yohannan_sobin

11

您是否尝试过将其翻转?

var newcurrentpageTemp = parseInt($(this).attr("id"));
newcurrentpageTemp++;
alert(newcurrentpageTemp));

现在对它进行排序不是一个数字,而是<div,但是当值是1时我得到的不是11而不是2。所以它没有加1 +1 = 2
Niklas

8

我相信您应该将其传递给parseInt 加1

$('.load_more').live("click",function() { //When user clicks
          var newcurrentpageTemp = parseInt($(this).attr("id")) + 1;   
          alert(newcurrentpageTemp);
          dosomething();
      });

http://jsfiddle.net/GfqMM/



5

解析ID,因为它会是字符串,然后添加。

例如

$('.load_more').live("click",function() { //When user clicks
    var newcurrentpageTemp = parseInt($(this).attr("id")) + 1;//Get the id from the hyperlink
    alert(newcurrentpageTemp);
    dosomething();
});

5

我在类似的情况下可以将其移至下一页,如下所示:

$("#page_next").click(function () {
    $("#pageNumber").val(parseInt($("#pageNumber").val()) + 1);
    submitForm(this);
    return false;
});

您应该能够添加方括号以实现所需的内容,例如:

var newcurrentpageTemp = (parseInt($(this).attr("id"))) + 1;//Get the id from the hyperlink

5

您必须先解析ID,然后再添加1

 $('.load_more').live("click",function() { //When user clicks
              var newcurrentpageTemp = parseInt($(this).attr("id"));
              newcurrentpageTemp ++;
              dosomething(newcurrentpageTemp );
 });

4

这里最简单的解决方案是更改

  var newcurrentpageTemp = $(this).attr("id") + 1;//Get the id from the hyperlink

至:

  var newcurrentpageTemp = (($(this).attr("id")) * 1) + 1;//Get the id from the hyperlink

没错,这是最简单的方法,而且效果很好。
cssyphus

2

parseInt解决方案是最好的方法,因为很清楚发生了什么。

为了完整起见,值得一提的是,也可以使用+运算符来完成此操作

$('.load_more').live("click",function() { //When user clicks
  var newcurrentpageTemp = +$(this).attr("id") + 1; //Get the id from the hyperlink
  alert(newcurrentpageTemp);
  dosomething();
});




0

简单而最佳的解决方案就是这样。将一个字符串放入一个变量中,然后使用如下的parseInt()方法将其转换。

var stringValue = '921795';
var numValue = parseInt(stringValue);

parseInt()方法将返回类似于921795的数字。此后,您可以将任何数字添加到您的值中。

http://www.phpcodify.com/convert-string-to-integer-using-jquery-parseint/


这个答案已经被给予了多次。这个答案有何不同/更好?
安德烈·库尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.