valor modificar etiqueta con cambiar atributo agregar javascript jquery casting

etiqueta - modificar html con javascript



¿Cómo agrego un valor entero con javascript(jquery) a un valor que devuelve una cadena? (10)

Tengo un bloque html simple como:

<span id="replies">8</span>

Usando jquery, intento agregar un 1 al valor (8).

var currentValue = $("#replies").text(); var newValue = currentValue + 1; $("replies").text(newValue);

Lo que está sucediendo es que está apareciendo como:

81

entonces

811

no 9, que sería la respuesta correcta. ¿Qué estoy haciendo mal?


Con respecto a la mala interpretación octal de .js, acabo de usar esto ...

parseInt(parseFloat(nv))

y después de la prueba con ceros a la izquierda, regresó cada vez con la representación correcta.

espero que esto ayude.


El número entero se está convirtiendo en una cadena en lugar de viceversa. Usted quiere:

var newValue = parseInt(currentValue) + 1


Parse int es la herramienta que debe usar aquí, pero como cualquier herramienta, debe usarse correctamente. Cuando use parseInt siempre debe usar el parámetro radix para asegurarse de que se usa la base correcta

var currentValue = parseInt($("#replies").text(),10);


Puede multiplicar la variable por 1 para forzar a JavaScript a convertir la variable en un número para usted y luego agregarlo a su otro valor. Esto funciona porque la multiplicación no está sobrecargada como lo es la suma. Algunos pueden decir que esto es menos claro que el análisis, pero es una forma de hacerlo y aún no se ha mencionado.


Simplemente, agregue un signo más antes del valor del texto

var newValue = +currentValue + 1;


Su código debería tener esto:

<span id="replies">8</span> var currentValue = $("#replies").text(); var newValue = parseInt(parseFloat(currentValue)) + 1; $("replies").text(newValue);

Hacks N Tricks


para incrementar en uno puedes hacer algo como

var newValue = currentValue ++;


parseInt () lo forzará a ser entero de tipo, o será NaN (no un número) si no puede realizar la conversión.

var currentValue = parseInt($("#replies").text(),10);

El segundo parámetro (radix) se asegura de que se analice como un número decimal.


parseInt no funcionó para mí en IE. Así que simplemente usé + en la variable que desea como un entero.

var currentValue = $("#replies").text(); var newValue = +currentValue + 1; $("replies").text(newValue);


var month = new Date().getMonth(); var newmon = month + 1; $(''#month'').html((newmon < 10 ? ''0'' : '''') + newmon );

Simplemente arreglé su problema del mes, la matriz getMonth comienza de 0 a 11.