문자열을 반환하는 값에 자바 스크립트 (jquery)로 정수 값을 추가하려면 어떻게해야합니까?


91

다음과 같은 간단한 html 블록이 있습니다.

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

jquery를 사용하여 값 (8)에 1을 추가하려고합니다.

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

무슨 일이 일어나고 있는지는 다음과 같이 나타납니다.

81

그때

811

9가 아니라 정답입니다. 내가 뭘 잘못하고 있죠?

답변:


186

parseInt ()는 정수 유형이되도록 강제하거나 변환을 수행 할 수없는 경우 NaN (숫자가 아님)이됩니다.

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

두 번째 매개 변수 (기수)는 십진수로 구문 분석되도록합니다.


10
parseInt ()에주의하십시오. "010"을 9로 인식합니다 (0으로 시작하는 값은 8 진수로 구문 분석 됨).
MightyE 2010

3
Bleh, "010"은 8 (8이 아님)로 구문 분석
MightyE

7
@Jacob Relkin : 이것이 유용했기 때문에 나는 그에게 또 다른 +1을 주었다. 더 나은 답변을 알고 있다면 그것을 공유하지 않은 것이 유감입니다.
ANeves은 SE입니다 생각하는 악

1
선행 0을 감지하지 않으면 8 진수가됩니다. 사용자 입력을 받아 들일 때 발생하는 간단한 결함.
Diodeus-James MacFarlane

1
두 번째 매개 변수를 사용하여 기수를 지정하는 한 정상적으로 작동합니다 parseInt("010", 10). 10을 반환합니다.
jahroy

29

Parse int는 여기서 사용해야하는 도구이지만 다른 도구와 마찬가지로 올바르게 사용해야합니다. parseInt를 사용할 때 항상 기수 매개 변수를 사용하여 올바른 기준이 사용되는지 확인해야합니다.

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

27

정수는 그 반대가 아닌 문자열로 변환됩니다. 원하는 :

var newValue = parseInt(currentValue) + 1

12

parseInt는 IE에서 나를 위해 작동하지 않았습니다. 그래서 저는 단순히 원하는 변수에 +를 정수로 사용했습니다.

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

4

.js의 8 진수 오해와 관련하여-방금 사용했습니다 ...

parseInt(parseFloat(nv))

선행 0으로 테스트 한 후 매번 올바른 표현으로 돌아 왔습니다.

도움이 되었기를 바랍니다.


2

코드는 다음과 같아야합니다.

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

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

해킹 N 트릭


1

1 씩 증가하려면 다음과 같이 할 수 있습니다.

  var newValue = currentValue ++;

8
확실히 ++ currentValue?
Marcin 2012

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

단순히 월 문제를 수정했습니다. getMonth 배열은 0에서 11까지 시작됩니다.


1

변수에 1을 곱하여 JavaScript에서 변수를 숫자로 변환 한 다음 다른 값에 추가 할 수 있습니다. 이것은 곱셈이 덧셈처럼 오버로드되지 않기 때문에 작동합니다. 어떤 사람들은 이것이 parseInt보다 덜 명확하다고 말할 수 있지만, 그것을 수행하는 방법이며 아직 언급되지 않았습니다.


0

간단히 텍스트 값 앞에 더하기 기호를 추가하십시오.

var newValue = +currentValue + 1;

-1

parseInt () 메서드를 사용하여 자바 스크립트에서 문자열을 정수로 변환 할 수 있습니다.

이렇게 코드를 변경하면

$("replies").text(parseInt($("replies").text(),10) + 1);

위의 게시 된 답변 (약 10 년 전에 게시 됨)과 어떻게 다른가요?
Code Maniac
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.