2012-04-02 2 views
1

Мой счет увеличивается. Два вопроса.Оценка не увеличивается javascript

Будет ли оно автоматически обновляться?

Или мой код неправильный?

HTML Page

<script>document.write("Score: " + score);</script> 

<table class="widthOneHundredPercent"> 
<tr> 
<td class="tableCellFloat columnOne" valign="top"> 
    <div class="question"><b>Question 1:</b> Who is the youngest in B Media?</div> 
<td class="tableCellFloat columnTwo" valign="top"> 
    <div class="answers"> 
      <ol> 
       <li> 
        <input type="radio" name="q1" id="q1-a" onclick="unhide(this); scoreIncrement()"/>John 
       </li> 
       <li> 
        <input type="radio" name="q1" id="q1-b" onclick="unhide(this)"/>Paula 
       </li> 
       <li> 
        <input type="radio" name="q1" id="q1-c" onclick="unhide(this)"/>Henal 
       </li> 
       <li> 
        <input type="radio" name="q1" id="q1-d" onclick="unhide(this)"/>Malc 
       </li> 
      </ol> 
     </div> 
</td> 
</td> 
</tr> 
<tr> 
<td colspan="2" valign="top"> 
    <div id="answerq1a" class="hidden"> 
<p>Your answer is correct, John is 20.</p> 
    </div> 
</td> 
</tr> 
<tr> 
<td colspan="2" valign="top"> 
    <div id="answerq1b" class="hidden"> 
<p>Your answer is incorrect, Paula is 31.</p> 
    </div> 
</td> 
</tr> 
<tr> 
<td colspan="2" valign="top"> 
    <div id="answerq1c" class="hidden"> 
<p>Your answer is incorrect, Henal is 21.</p> 
    </div> 
</td> 
</tr> 
<tr> 
<td colspan="2" valign="top"> 
    <div id="answerq1d" class="hidden"> 
<p>Your answer is incorrect, Malc is 33.</p> 
    </div> 
</td> 
</tr> 
</table>​ 

Javascript

var currentShown = ""; 

function unhide(rad) { 
    var id = "answer" + rad.id.replace("-", ""); 
    var answer = document.getElementById(id); 
    if (answer) { 
     var current = document.getElementById(currentShown); 
     if (current) current.className = "hidden"; 
     currentShown = id; 
     answer.className = "unhidden"; 
    } 
} 

var score = 0; 

function scoreIncrement() { 

    score++; 
}​ 

Такой простой код, но он не будет работать, очевидно, я написал это неправильно, но я не могу видеть, что это не так?

+3

eh, какой счет увеличивается ... нет ничего подобного в коде, который вы отправили – scibuff

+1

haha, честно говоря, он был там, когда я поделился, позвольте мне изменить ссылку на общий ресурс, не знаю, что там произошло, извинения , –

+2

http://jsfiddle.net/RfkCw/3/ - Не знал, что вам нужно было щелкнуть обновление, я плохой. Новое в jsfiddle :) –

ответ

4

Вы document.write'ing счет, но никогда не обновляя вызов так что даже увеличивает ваш счет он не обновляется на странице ...

Обновить ваш HTML с чем-то вроде:

<!-- <script>document.write("Score: " + score);</script> --> 
<span id="score"></span> 

и ваш Javascript с чем-то вроде

function scoreIncrement() { 
    score++; 
    document.getElementById("score").innerText="Score: " + score; 
}​ 

это должно сделать это. Самое элегантное решение, может быть, и нет, но оно действительно работает.

+2

Вы избили меня тоже, вот и вот JS Fiddle, чтобы комплимент вашему ответу: http://jsfiddle.net/RfkCw/8/. –

+0

Благодарю вас обоих. Делает большой смысл, теперь, чтобы сделать его оборонительным, чтобы не обманывать, спасибо всем! –

Смежные вопросы