2014-02-19 2 views
0

이것은 아마도 매우 쉬운 해결책이지만, 다른 질문과 인터넷 검색은 더 이상 나를 도왔습니다. 나는 그래서이 제대로 작동하는지 볼 수있는 += punten을 추가 한자바 스크립트 카운트 숫자

function random_card(){ 
    var rand = Math.floor(Math.random()*cards.length); 
    var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>"; 
    document.getElementById("Player").innerHTML += html; 
    var punten = cards[rand][1]; 
    document.getElementById("Points").innerHTML += punten; 
} 

:

나는 그에 따라 포인트 나에게 배열에서 임의의 값을 제공하는 자바 스크립트 함수를했다. 그것은 id 포인트와 div의 모든 지점을 보여줍니다.

하지만 내가하고 싶었던 것은 내가 4, 왕과 10을 그리는 것처럼, 그래서 모두 함께 계산이 사전에 (24) 대신 41010.

감사를 표시해야합니다! 정보가 누락 된 경우

답변

4

현재 문자열을 함께 추가하기 만하면 (함께 가입) 41010으로 끝납니다. 현재 innerHTML (총계)을 가져와 사용해야합니다. parseInt() 문자열에서 숫자로 변환 한 다음 선택한 새 카드를 추가 한 다음이 새 값을 요소의 innerHTML에 할당하십시오.

var curPoints = parseInt(document.getElementById("Points").innerHTML, 10) || 0; 

시도합니다 -

내가이 줄을 추가 한

parseInt()here

편집에서 다음

function random_card(){ 
    var rand = Math.floor(Math.random()*cards.length); 
    var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>"; 
    document.getElementById("Player").innerHTML += html; 
    var punten = cards[rand][1]; 

    var curPoints = parseInt(document.getElementById("Points").innerHTML, 10) || 0; 
    var total = curPoints + parseInt(punten, 10); 
    document.getElementById("Points").innerHTML = total; 
} 

더 많은 정보를보십시오 "Points"div의 innerHTML을 변환하지만 비어있는 경우 (빈 문자열이 false로 변환되는 경우) curPoints는 0과 같습니다. 이렇게하면 시작시 div가 비어있는 문제가 해결됩니다.

+1

설명을 제공해주십시오. 감사! – Dropout

+1

간단한 설명을 포함하도록 답변이 업데이트되었습니다. 감사합니다. –

+2

첫 번째 인수를 기반으로 발생할 수있는 예기치 않은 동작을 피하기 위해 'parseInt()'의 두 번째 인수로 기수를 전달하는 것이 좋습니다. –

0

innerHTML은 문자열이며 JavaScript는 두 문자열 연결을 숫자로 추가 할 때 +를 사용합니다.

var pointsInHtml = parseInt(document.getElementById("Points").innerHTML, 10); 
pointsInHtml += punten; 
document.getElementById("Points").innerHTML = punten; 

The second parameter 10 of the parseInt method은 보통 진수로 구문 분석 기능을 피하기 위해이 보관하는 것이 좋습니다.

더 이상 필요한에서는 parseInt를 만들 것 즉, 변수 만 #Points 용기에 넣어 끝 부분에 포인트를 유지할 쉬울 수 있습니다

0

당신이 그것을 변환해야하므로 innerHTML을은 문자열입니다 카드 값을 추가하기 전에 정수로 변환하십시오.

function random_card(){ 
    var rand = Math.floor(Math.random()*cards.length); 
    var html = "card: "+cards[rand][0]+"<br/>points: "+cards[rand][1]+"<br/><br/>"; 
    document.getElementById("Player").innerHTML += html; 
    var punten = cards[rand][1], 
     curPunten = parseInt(document.getElementById('Points').innerHTML); 
    document.getElementById("Points").innerHTML = curPunten + punten; 
} 
+0

아무런 문제가, 합의 된 답변에서 그것은 원래처럼 보이지 않는다 innerHTML은 빈 문자열이었습니다. :) 다행히도 – PeteAUK

관련 문제