Chuyển chuỗi thành số và thêm một


94

Tôi muốn biến giá trị tôi nhận được từ id thành một số và thêm một vào nó, sau đó chuyển giá trị mới vào dosomething()hàm để sử dụng. Khi tôi thử điều này và giá trị là một, tôi nhận lại 11 không phải 2.

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

Câu trả lời:


190

Giả sử bạn đúng và id của bạn là một số thích hợp (không có bất kỳ văn bản nào khác), bạn nên phân tích cú pháp id và sau đó thêm một id vào đó:

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

doSomething(currentPage);

1
@Justin Niessner, Bạn cũng có thể chỉ cần thực hiện + 1ở cuối dòng đầu tiên thay vì sử dụng ++bộ tăng trước trên dòng thứ hai để nhỏ gọn hơn.
Chris Snowden

@Chris - Bạn có thể nhưng tôi muốn ví dụ rõ ràng hoạt động nào diễn ra trước.
Justin Niessner

@Justin Niessner, đủ công bằng. Dấu ngoặc cũng có thể giúp làm rõ thứ tự thực hiện. +1 để có câu trả lời nhanh rõ ràng. Chỉ cần đặt cược tôi với nó.
Chris Snowden

@Niklas, Xem câu trả lời của tôi cho tùy chọn một dòng trong ngoặc đơn.
Chris Snowden

@JustinNiessner Cảm ơn bạn!
yohannan_sobin

11

Bạn đã thử lật ngược nó một chút chưa?

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

sort nó bây giờ không phải là một số đã <div trong nó tuy nhiên tôi bây giờ có được 11 không 2 khi giá trị là 1. vì vậy nó không được thêm 1 + 1 = 2
Niklas

8

Tôi tin rằng bạn nên thêm 1 sau khi chuyển nó vào parseInt

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

http://jsfiddle.net/GfqMM/



5

Phân tích cú pháp Id như nó sẽ là chuỗi và sau đó thêm.

ví dụ

$('.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

Tôi đã làm việc này trong một tình huống tương tự khi chuyển sang trang tiếp theo như thế này:

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

Bạn có thể thêm dấu ngoặc để đạt được những gì bạn muốn như sau:

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

5

Bạn phải phân tích cú pháp id trước khi thêm 1

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

4

Giải pháp đơn giản nhất ở đây là thay đổi

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

đến:

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

Đúng như bạn - đó là cách đơn giản nhất, và nó hoạt động hoàn hảo.
cssyphus

2

Giải pháp parseInt là cách tốt nhất để đi vì nó rõ ràng những gì đang xảy ra.

Để hoàn thiện, điều đáng nói là điều này cũng có thể được thực hiện với toán tử +

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


0

một cách hay từ http://try.jquery.com/levels/4/challenges/16 :

thêm dấu + trước chuỗi mà không sử dụng parseInt và parseFloat và cơ số và các lỗi tôi gặp phải do thiếu tham số cơ số

mẫu vật

var number= +$('#inputForm').val();

0
var first_value = '2';
// convert this string value into int
parseInt(first_value);

0

Giải pháp đơn giản và tốt nhất là như thế này. lấy một chuỗi trong một biến và sau đó chuyển đổi nó bằng phương thức parseInt () như bên dưới.

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

Phương thức parseInt () sẽ trả về số như thế này 921795. sau đó, bạn có thể thêm bất kỳ số nào vào giá trị của mình.

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


Câu trả lời này đã được đưa ra nhiều lần. Câu trả lời này khác / tốt hơn như thế nào?
André Kool
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.