0

인터넷에 추가 된 Vs 연결 질문이 많이 있지만, 내가 왜 그런 행동을하는지 확신 할 수 없습니다. 명백한 문자열을 "추가"하려고하지 않고 모든 값에 parseIntparseFloat을 사용하려고 시도했습니다. 숫자 값 표현을 포함하는 data-page 특성에서 값을 가져와야합니다 (암시 적 문자열로 인식 함). data-page 속성에서 값을 얻는 한, 변수에 대한 추가를 수행 할 수 없습니다. 하드 코드 된 1으로 바꾸면 모든 것이 잘됩니다. 값은 항상 정수 여야합니다. 그러나 동일한 동작이 있는지 확인하려면 parseFloat을 시도했습니다. 나는 그랬다.비정상적인 JavaScript 추가 대 연결 동작

일부 샘플 코드는 다음과 같습니다. $("#pagination").attr('data-page').trim()1으로 평가된다고 가정하십시오.

//Tried parseFloat 
//datapage = 1 //This works as expected 
dataPage = parseFloat($("#pagination").attr('data-page').trim()); //This does not work as expected 
curPage = (parseFloat(dataPage) + parseFloat(1)); 
console.log(curPage); //Outputs '11' instead of '2' 

//Tried parseInt 
//datapage = 1 //This works as expected 
dataPage = parseInt($("#pagination").attr('data-page').trim()); 
curPage = (parseInt(dataPage) + parseInt(1)); 
console.log(curPage); //Outputs '11' instead of '2' 
+1

HTML을 게시 할 수도 있습니까? 두 가지 예제 모두 나를 잘 처리합니다. –

+0

나는 ** ** parseFloat와'parseInt' 코드가 ** 작동하지 않는다고 생각합니다. 어쨌든'parseFloat'와'parseInt'를 두 번 호출하는 이유는 어떨까요? –

+0

@MarioAlexandroSantini 나는 내가 얻고 있다고 생각하는 것을 얻기 위해 중복을 위해 parseFloat/parseInt를 두 번 호출한다. 일반적으로 프로덕션 코드에서는 그렇게하지 않습니다. –

답변

2

모든 것이 예상대로 작동합니다. http://codepen.io/anon/pen/zBwOPW

HTML :이 codepen보기 의견 및 보증의 일부 후

<body> 
    <input id="pagination" data-page="1" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> 
</body> 

원래 JS 변경 :

//Tried parseFloat 
//datapage = 1 //This works as expected 
dataPage = parseFloat($("#pagination").attr('data-page').trim()); //This does not work as expected 
curPage = (parseFloat(dataPage) + parseFloat(1)); 
console.log(curPage); //Outputs '11' instead of '2' 

//Tried parseInt 
//datapage = 1 //This works as expected 
dataPage = parseInt($("#pagination").attr('data-page').trim()); 
curPage = (parseInt(dataPage) + parseInt(1)); 
console.log(curPage); //Outputs '11' instead of '2' 
+0

"사내"웹 발췌 물 기능을 사용하려면이 값을 수정할 수도 있습니다. – JonSG

0

을 자바 스크립트는 내가 사이에 다른 차이를보고 올바른 시작되었다 내 기존 코드 및 예제 스 니펫이 게시되었습니다. 내가 사용하고있는 템플릿 엔진 인 Smarty와 관련이 있습니다. data-page 속성은 Smarty 변수로 채워지며 하드 코딩 된 값으로 전환하면 예상대로 추가가 작동합니다. 작동하지 않습니다 무엇

:

작동 무엇
<div id="pagination" class="col-xs-12 col-md-5 paginationBar" data-page="{$paginationPage}" data-pageMax="{$paginationPageMax}" data-pageQty="{$paginationQty}">...<div> 

: 잘 모르겠어요

<div id="pagination" class="col-xs-12 col-md-5 paginationBar" data-page="1" data-pageMax="1000" data-pageQty="10">...<div> 

이 아직 문제를 포즈 이유. 그러나 이것이 분명히 원인입니다. 이유 및/또는 문제를 해결하는 방법을 찾으면이 답변을 업데이트해야합니다.

+0

'10000- (9999- (dataPage))'와 같은 미친 것을 시도하면 어떻게됩니까? 수학적으로, 이것은'dataPage + 1'과 완전히 똑같이 나올 수 있지만 더하기 기호는 사용하지 않습니다. –