2011-03-16 28 views
7

Estoy usando jQuery para recuperar un valor enviado por un botón de entrada. El valor se supone que es un número entero. Quiero incrementarlo en uno y mostrarlo.¿Cómo puedo cambiar el tipo de datos de un valor de entrada HTML a entero?

// Getting immediate Voting Count down button id 
var countUp = $(this).closest('li').find('div > input.green').attr('id'); 
var count = $("#"+countUp).val() + 1; 
alert (count); 

El código anterior me da una cadena concatenada. Digamos por ejemplo que el valor es 3. Quiero obtener 4 como salida, pero el código produce 31.

¿Cómo puedo cambiar el tipo de datos de un valor de entrada HTML a entero?

+1

Nota al margen: cualquier texto que provenga de HTML es una cadena por defecto porque HTML es, bueno, una cadena :) –

Respuesta

17

Para convertir strValue en un entero, ya sea uso:

parseInt(strValue, 10); 

o la unario + operador.

+strValue 

Nota El parámetro radix a parseInt porque un 0 causaría parseInt asumir que la entrada estaba en octal, y una entrada de 010 daría el valor de 8 en lugar de 10

5
parseInt( $("#"+countUp).val() , 10 ) 
+0

¿Significa aquí 10 decimal? – ptamzz

+1

Sí. De lo contrario, obtendrá resultados como 'parseInt ('010');' siendo * 8 *. – Quentin

+0

@ptamzz - Sí, lo hace. El valor predeterminado es "intentar adivinar". –

2

Uso parseInt como en: var count = parseInt($("#"+countUp).val(), 10) + 1; o el operador + como en var count = +$("#"+countUp).val() + 1;

Cuestiones relacionadas