Converta string em número e adicione um


94

Eu quero transformar o valor que obtenho do id em um número e adicionar um a ele, em seguida, passar o novo valor para a dosomething()função a ser usada. Quando tentei fazer isso e o valor é um, recebo 11 e não 2.

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

Respostas:


189

Supondo que você esteja correto e seu id seja um número adequado (sem qualquer outro texto), você deve analisar o id e adicionar um a ele:

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

doSomething(currentPage);

1
@Justin Niessner, Você também pode simplesmente fazer um + 1no final da primeira linha em vez de usar um ++pré-incrementador em uma segunda linha para ser mais compacto.
Chris Snowden,

@Chris - Você poderia, mas eu queria que o exemplo deixasse claro qual operação estava acontecendo primeiro.
Justin Niessner

@Justin Niessner, muito justo. Os colchetes também podem ajudar a esclarecer a ordem de execução. 1 para uma resposta rápida e clara. Apenas aposte comigo.
Chris Snowden,

@Niklas, veja minha resposta para a opção de uma linha entre colchetes.
Chris Snowden,

@JustinNiessner Obrigado!
yohannan_sobin

11

Você já tentou virar um pouco?

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

classificá-lo agora não era um número tinha <div nele, porém agora recebo 11 e não 2 quando o valor é 1. portanto, não é adicionado 1 + 1 = 2
Niklas

8

Eu acredito que você deve adicionar 1 depois de passá-lo para parseInt

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

http://jsfiddle.net/GfqMM/



5

Analise o Id como seria uma string e, em seguida, adicione.

por exemplo

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

Eu tenho isso funcionando em uma situação semelhante para passar para a próxima página como esta:

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

Você deve ser capaz de adicionar colchetes para conseguir o que deseja, algo assim:

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

5

Você tem que analisar o id antes de adicionar 1

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

4

A solução mais simples aqui é mudar

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

para:

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

Você está certo - isso É o mais simples e funciona perfeitamente.
cssyphus

2

A solução parseInt é o melhor caminho a seguir, pois é claro o que está acontecendo.

Para completar, vale a pena mencionar que isso também pode ser feito com o operador +

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

A solução simples e melhor é assim. pegue uma string em uma variável e converta-a usando o método parseInt () como abaixo.

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

O método parseInt () retornará o número como este 921795. depois disso, você pode adicionar qualquer número ao seu valor.

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


Essa resposta já foi dada várias vezes. Como essa resposta é diferente / melhor?
André Kool
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.