Mam prosty blok html taki jak:
<span id="replies">8</span>
Używając jquery, próbuję dodać 1 do wartości (8).
var currentValue = $("#replies").text();
var newValue = currentValue + 1;
$("replies").text(newValue);
To, co się dzieje, wygląda tak:
81
następnie
811
nie 9, co byłoby poprawną odpowiedzią. Co ja robię źle?
javascript
jquery
casting
rball
źródło
źródło
parseInt("010", 10)
zwraca dziesięć.Parse int to narzędzie, którego powinieneś tutaj użyć, ale jak każde narzędzie powinno być używane poprawnie. Korzystając z parseInt, należy zawsze używać parametru radix, aby upewnić się, że używana jest poprawna podstawa
var currentValue = parseInt($("#replies").text(),10);
źródło
Liczba całkowita jest konwertowana na ciąg znaków, a nie odwrotnie. Chcesz:
var newValue = parseInt(currentValue) + 1
źródło
parseInt nie działa dla mnie w IE. Więc po prostu użyłem + na zmiennej, którą chcesz jako liczbę całkowitą.
var currentValue = $("#replies").text(); var newValue = +currentValue + 1; $("replies").text(newValue);
źródło
Jeśli chodzi o ósemkową błędną interpretację .js - właśnie użyłem tego ...
parseInt(parseFloat(nv))
i po sprawdzeniu z zerami na początku, za każdym razem wracał z poprawną reprezentacją.
mam nadzieję że to pomoże.
źródło
Twój kod powinien wyglądać tak:
<span id="replies">8</span> var currentValue = $("#replies").text(); var newValue = parseInt(parseFloat(currentValue)) + 1; $("replies").text(newValue);
Hacks N Tricks
źródło
aby zwiększyć o jeden, możesz zrobić coś takiego
var newValue = currentValue ++;
źródło
var month = new Date().getMonth(); var newmon = month + 1; $('#month').html((newmon < 10 ? '0' : '') + newmon );
Po prostu rozwiązałem problem z miesiącem, tablica getMonth zaczyna się od 0 do 11.
źródło
Po prostu dodaj znak plus przed wartością tekstową
var newValue = +currentValue + 1;
źródło
Możesz pomnożyć zmienną przez 1, aby zmusić JavaScript do konwersji zmiennej na liczbę za Ciebie, a następnie dodać ją do innej wartości. Działa to, ponieważ mnożenie nie jest przeciążone tak jak dodawanie. Niektórzy mogą powiedzieć, że jest to mniej jasne niż parseInt, ale jest to sposób na zrobienie tego i nie zostało jeszcze wspomniane.
źródło
Możesz użyć metody parseInt (), aby przekonwertować ciąg znaków na liczbę całkowitą w javascript
Po prostu zmieniasz kod w ten sposób
$("replies").text(parseInt($("replies").text(),10) + 1);
źródło