Convierta una cadena en un número y agregue uno

94

Quiero convertir el valor que obtengo de la identificación en un número y agregarle uno y luego pasar el nuevo valor a la dosomething()función para usar. Cuando probé esto y el valor es uno, obtengo 11, no 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
fuente

Respuestas:

190

Suponiendo que está en lo correcto y que su identificación es un número adecuado (sin ningún otro texto), debe analizar la identificación y luego agregarle una:

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

doSomething(currentPage);
Justin Niessner
fuente
1
@Justin Niessner, también puede hacer una + 1al final de la primera línea en lugar de usar un ++preincrementador en una segunda línea para ser más compacto.
Chris Snowden
@Chris - Podrías, pero quería que el ejemplo dejara claro qué operación estaba ocurriendo primero.
Justin Niessner
@Justin Niessner, bastante justo. Los corchetes también pueden ayudar a aclarar el orden de ejecución. Sin embargo, +1 para una respuesta rápida y clara. Solo apuesteme.
Chris Snowden
@Niklas, vea mi respuesta para la opción de una línea entre corchetes.
Chris Snowden
@JustinNiessner ¡Gracias!
yohannan_sobin
11

¿Has intentado cambiarlo un poco?

var newcurrentpageTemp = parseInt($(this).attr("id"));
newcurrentpageTemp++;
alert(newcurrentpageTemp));
Doozer Blake
fuente
ordenarlo ahora no era un número que tuviera <div en él, sin embargo, ahora obtengo 11, no 2 cuando el valor es 1., por lo que no se agrega 1 + 1 = 2
Niklas
8

Creo que deberías agregar 1 después de pasarlo a parseInt

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

http://jsfiddle.net/GfqMM/

cyco130
fuente
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
fuente
5

Analice el Id como si fuera una cadena y luego agregue.

p.ej

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

Tengo esto funcionando en una situación similar para pasar a la siguiente página como esta:

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

Debería poder agregar corchetes para lograr lo que desea, algo como esto:

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

Tienes que analizar la identificación antes de agregar 1

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

La solución más simple aquí es cambiar

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

a:

  var newcurrentpageTemp = (($(this).attr("id")) * 1) + 1;//Get the id from the hyperlink
DevlshOne
fuente
Tienes razón, eso ES lo más simple y funciona perfectamente.
cssyphus
2

La solución parseInt es el mejor camino a seguir, ya que está claro lo que está sucediendo.

Para completar, vale la pena mencionar que esto también se puede hacer con el 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
fuente
0

una buena forma de http://try.jquery.com/levels/4/challenges/16 :

agregando un + antes de la cadena sin usar parseInt y parseFloat y radix y los errores que enfrenté por falta el parámetro de radix

muestra

var number= +$('#inputForm').val();
Iman
fuente
0
var first_value = '2';
// convert this string value into int
parseInt(first_value);
Ali Umair
fuente
0

La mejor y simple solución es así. tome una cadena en una variable y luego conviértala usando el método parseInt () como se muestra a continuación.

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

El método parseInt () devolverá el número como este 921795. Después de esto, puede agregar cualquier número a su valor.

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

Ehtesham Shami
fuente
Esta respuesta ya se ha dado varias veces. ¿Cómo es esta respuesta diferente / mejor?
André Kool