2012-07-30 1 views
0

이 게시물은 JS의 범위 값에 관한 이전 항목의 연속입니다. 아래 줄에서 Chrome에서 자바 스크립트 콘솔을 열면 태그 닫을 때마다 내 값이 표시됩니다. 20과 10이라고 가정합시다. 그러나 그 값은 실제 HTML 코드에 없습니다 (아래 그림 참조). 내 자바 스크립트 함수에서, 나는 단순히 '추출'스팬 값을, 그들을 나누기 및 값을 반환하려고합니다. 내 결과로 'NaN'이 계속 나타납니다. 함수가 숫자 값을 반환 할 수 있도록 어딘가에 형식 변환이 필요합니까?필요한 정수 대신 함수 결과로 NaN 문제가 발생했습니다.

참고 : I 대신 예상 한 결과 NaN를 얻을

function divide(n1,n2) 
{ ans = n1/n2; 
    document.write(" "+ans+"<BR>");  
    return ans; 
} 

var a = parseInt($("LineSpeedGE.PIData[data-tag]").data("tag"), 10); 
var b = parseInt($("AimPsSpd.PIData[data-tag]").data("tag"), 10); 

divide (a, b); 

'2'값은 역사가에서 'PI'

<span id ="LineSpeedGE" class='PIData' data-tag='G2LineSpeedGE'></span> (value of 20) 

<span id ="AimPsSpd" class='PIData' data-tag='G2rCurrentAimPsSpd'></span> (value of 10) 

JS 기능 판독된다. 변수에 일반 정수를 연결하면 실제 나눗셈이 잘됩니다. 내 HTML 코드에서 볼 수없는 스팬의 실제 값을 '캡처'하는 데 문제가있는 것 같습니다. 데이터 유형이 충돌하고있는 것으로 의심됩니다.

내 원래 게시물에 대한 링크는 다음과 같습니다. Storing a span value into a javascript variable (참조 :이 내용이 복잡한 경우)

+3

'data-tag'는 해석 할 수없는 숫자입니다. 잘못된 선택자를 사용하고 있습니다. – Esailija

+0

'G2LineSpeedGE'와'G2rCurrentAimPsSpd'는 숫자가 아닙니다. –

+0

실제 값은 어디에 저장되어 있습니까? 귀하의 '데이터 - 태그'값은 분명 숫자가 아닙니다. –

답변

2

G2LineSpeedGE은 숫자가 아니며 도 아닙니다.

<span id ="LineSpeedGE" class='PIData' data-tag='42'></span>.

+0

처음에는 선택기가 잘못 되었기 때문에이 기능이 작동하지 않습니다. – epascarello

1

우선 선택자가 잘못되었습니다.

$("LineSpeedGE.PIData[data-tag]") 

이것은 LineSpeedGE (<LineSpeedGE/>)라는 요소를 찾습니다. 당신은 아마 원하는 :

$("#LineSpeedGE.PIData[data-tag]") 

# 그것이 ID를 검색한다 (당신이 ID로 검색하는 경우 .PIData[data-tag] 필요가 없습니다).

또한 data-tag 값은 숫자가 아닙니다. 그들은 G2LineSpeedGEG2rCurrentAimPsSpd이며 숫자가 아닙니다.

1

선택기가 잘못되어 반환되는 요소가 없습니다.

$("LineSpeedGE.PIData[data-tag]") 

그것은 #이 없습니다, 그래서 당신은 LineSpeedGE라는 요소가 아닌 ID를 찾고 있습니다.

$("#LineSpeedGE.PIData[data-tag]") 

동일 내용은 AimPsSpd에 적용됩니다. 누락 됨 #

또한 G2LineSpeedGE은 문자열이 아니며 숫자가 아니므로 parseInt가 실행될 때 NAN이됩니다.

관련 문제