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

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);

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));

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/



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

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

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 );
 });

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

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



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

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/


Esta respuesta ya se ha dado varias veces. ¿Cómo es esta respuesta diferente / mejor?
André Kool
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.