Dizeyi sayıya dönüştür ve bir ekle


94

İd'den aldığım değeri bir sayıya dönüştürmek ve ona bir tane eklemek, ardından yeni değeri dosomething()kullanılacak işleve geçirmek istiyorum. Bunu denediğimde ve değer bir olduğunda 2 değil 11'i geri aldım.

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

Yanıtlar:


190

Doğru olduğunuzu ve kimliğinizin uygun bir numara olduğunu varsayarsak (başka herhangi bir metin olmadan), kimliği ayrıştırmalı ve sonra ona bir tane eklemelisiniz:

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

doSomething(currentPage);

1
@Justin Niessner, Daha kompakt olması için ikinci bir satırda + 1bir ++ön artırıcı kullanmak yerine ilk satırın sonunda da yapabilirsiniz .
Chris Snowden

@Chris - Yapabilirdin ama örneğin hangi operasyonun önce gerçekleştiğinin net olmasını istedim.
Justin Nießner

@Justin Niessner, yeterince adil. Parantezler, yürütme sırasını da netleştirmeye yardımcı olabilir. Yine de net ve hızlı bir cevap için +1. Sadece benimle bahse gir.
Chris Snowden

@Niklas, Parantez içindeki tek satır seçeneği için cevabıma bakın.
Chris Snowden

@JustinNiessner Teşekkürler!
yohannan_sobin

11

Biraz takla atmayı denedin mi?

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

şimdi sırala, içinde <div vardı, ancak şimdi değer 1 olduğunda 11 değil 2 alıyorum, bu yüzden eklenmedi 1 + 1 = 2
Niklas

8

Ayrıştırmak için geçtikten sonra 1 eklemeniz gerektiğine inanıyorum

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

http://jsfiddle.net/GfqMM/



5

Kimliği dize olduğu gibi ayrıştırın ve ardından ekleyin.

Örneğin

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

Bunu, aşağıdaki gibi bir sonraki sayfaya geçmek için benzer bir durumda çalıştırıyorum:

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

Bunun gibi bir şeyi elde etmek için parantez ekleyebilmelisiniz:

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

5

1 eklemeden önce kimliği ayrıştırmanız gerekir

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

4

Buradaki en basit çözüm,

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

to:

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

Haklısın - bu en basit olanı ve mükemmel çalışıyor.
cssyphus

2

Ayrıştırma çözümü, neler olduğu açık olduğu için gitmenin en iyi yoludur.

Tamlık açısından bunun + operatörü ile de yapılabileceğini belirtmek gerekir.

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

Basit ve en iyi çözüm böyledir. tek değişkenli bir dizge alın ve ardından aşağıdaki gibi parseInt () yöntemini kullanarak onu dönüştürün.

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

parseInt () yöntemi, 921795 gibi bir sayıyı döndürecektir. Bundan sonra, değerinize herhangi bir sayı ekleyebilirsiniz.

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


Bu cevap zaten birçok kez verildi. Bu cevap nasıl farklı / daha iyi?
André Kool
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.