2014-03-26 54 views
4

我遇到問題,無法將值保存到頁面中。保存變量的值

我的JS:

var count = 0; 

switch (index) { 
case 0: 
    count = count - 5; 
    document.getElementById("point").getElementsByTagName('p')[0].innerText = (count); 
    break; 
case 1: 
    count = count + 2; 
    document.getElementById("point").getElementsByTagName('p')[0].innerText = (count); 
    break; 
case 2: 
    count = count + 5; 
    document.getElementById("point").getElementsByTagName('p')[0].innerText = (count); 
    break; 
} 

我的HTML:

<div id="point"> 
    <p></p> 
</div> 

我如何保存的價值?

+0

張貼您的HTML。 –

+1

'index'的價值是什麼?同樣你的'switch'語句完全是冗餘的,因爲在所有情況下運行相同的代碼。 –

+0

它的工作檢查小提琴=> http://jsfiddle.net/fj3fb/ –

回答

0

您使用innerText,這在這裏是不可能的。您可以使用innerHTML使其重新工作。
一個小的jsFiddle demo向你展示一個作品,另一個不會。


此外,您還可以simplefy你的代碼了很多,使得它在同樣的努力更加靈活:

var count = 0; 
switch (index) { 
    case 0: 
     count -= 5; 
    break; 
    case 1: 
     count += 2; 
    break; 
    case 2: 
     count += 5; 
    break; 
} 
// Only once, after the switch. If you want another target for the value, 
// all you have to do is change this line, instead of every case. 
document.getElementById("point").getElementsByTagName('p')[0].innerHTML = count; 

你不需要jQuery的這一點。原生JS通常更快。
如果你想使用jQuery,分裂以獲得最佳性能的選擇:

$('#point').find('p') 
1

它的運行,看我jsFiddle

var index = 0; // for demonstration, change that value 

var count = 0; 

switch (index) { 
case 0: 
    count = count - 5; 
    $('#point p').text(count); 
    break; 
case 1: 
    count = count + 2; 
    $('#point p').text(count); 
    break; 
case 2: 
    count = count + 5; 
    $('#point p').text(count); 
    break; 
} 

注意,行$('#point p').text(count);始終是相同的在所有的情況下,所以你可能想把它放在switch-case之後。

此外,我使用jQuery替換了您的行:document.getElementById("point").getElementsByTagName('p')[0].innerText = count; by $('#point p').text(count)。希望它能幫助你開始。