Ubah string menjadi angka dan tambahkan satu


94

Saya ingin mengubah nilai yang saya dapatkan dari id menjadi angka dan menambahkan satu ke dalamnya lalu meneruskan nilai baru ke dalam dosomething()fungsi untuk digunakan. Ketika saya mencoba ini dan nilainya satu, saya mendapatkan kembali 11 bukan 2.

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

Jawaban:


190

Dengan asumsi Anda benar dan id Anda adalah angka yang tepat (tanpa teks lain), Anda harus mengurai id dan kemudian menambahkannya:

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

doSomething(currentPage);

1
@Justin Niessner, Anda juga bisa melakukan a + 1di akhir baris pertama daripada menggunakan ++pre-incrementer di baris kedua agar lebih kompak.
Chris Snowden

@ Chris - Anda bisa, tetapi saya ingin contohnya menjelaskan operasi mana yang terjadi pertama kali.
Justin Niessner

@ Justin Niessner, cukup adil. Tanda kurung juga dapat membantu memperjelas urutan eksekusi. 1 untuk jawaban cepat yang jelas. Taruhan saja aku untuk itu.
Chris Snowden

@Niklas, Lihat jawaban saya untuk opsi satu baris dalam tanda kurung.
Chris Snowden

@JustinNiessner Terima kasih!
yohannan_sobin

11

Sudahkah Anda mencoba flip-flopping sedikit?

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

Urutkan sekarang bukan angka yang <div di dalamnya namun sekarang saya mendapatkan 11 bukan 2 ketika nilainya 1. jadi tidak ditambahkan 1 + 1 = 2
Niklas

8

Saya yakin Anda harus menambahkan 1 setelah meneruskannya ke parseInt

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

http://jsfiddle.net/GfqMM/



5

Parsing Id seperti itu akan menjadi string dan kemudian tambahkan.

misalnya

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

Saya mendapatkan ini berfungsi dalam situasi yang sama untuk pindah ke halaman berikutnya seperti ini:

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

Anda harus dapat menambahkan tanda kurung untuk mencapai apa yang Anda inginkan seperti ini:

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

5

Anda harus mengurai id sebelum menambahkan 1

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

4

Solusi paling sederhana di sini adalah berubah

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

untuk:

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

Benar Anda - itu IS yang paling sederhana, dan itu bekerja dengan sempurna.
cssyphus

2

Solusi parseInt adalah cara terbaik untuk pergi karena sudah jelas apa yang terjadi.

Untuk kelengkapan, perlu disebutkan bahwa ini juga dapat dilakukan dengan operator +

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



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

0

Solusi sederhana dan terbaik seperti ini. ambil string dalam satu variabel lalu konversikan menggunakan metode parseInt () seperti di bawah ini.

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

metode parseInt () akan mengembalikan angka seperti ini 921795. setelah ini, Anda dapat menambahkan angka apa pun ke nilai Anda.

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


Jawaban ini telah diberikan berkali-kali. Bagaimana jawaban ini berbeda / lebih baik?
André Kool
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.