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();
});
Niklas
fonte

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);
Justin Niessner
fonte
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));
Doozer Blake
fonte
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/

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

http://jsfiddle.net/GfqMM/

Sedat Başar
fonte
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();
});
Jayendra
fonte
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
Chris Snowden
fonte
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 );
 });
Jean-Charles
fonte
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
DevlshOne
fonte
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();
});
njr101
fonte
0

uma boa maneira de http://try.jquery.com/levels/4/challenges/16 :

adicionando um + antes da string sem usar parseInt e parseFloat e radix e erros que encontrei para o parâmetro radix ausente

amostra

var number= +$('#inputForm').val();
Iman
fonte
0
var first_value = '2';
// convert this string value into int
parseInt(first_value);
Ali Umair
fonte
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/

Ehtesham Shami
fonte
Essa resposta já foi dada várias vezes. Como essa resposta é diferente / melhor?
André Kool