从变量中节省价值

时间:2014-03-26 09:21:31

标签: javascript switch-statement

我遇到了问题,我无法将值保存到页面中。

我的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>

如何保存价值?

2 个答案:

答案 0 :(得分: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之后。

此外,我将document.getElementById("point").getElementsByTagName('p')[0].innerText = count;替换为$('#point p').text(count),以使用jQuery。希望它可以帮助您入门。

答案 1 :(得分:0)

您使用innerText,这是不可能的。您可以使用innerHTML使其再次运行 一个小jsFiddle demo向你展示一个作品,另一个不会。


此外,您可以简单地简化代码,并在同样的工作中使其更加灵活:

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')