使用if语句更改多个变量

时间:2014-12-12 00:07:34

标签: javascript if-statement

我刚开始学习Javascript。对于初学者项目,我制作了一个测验指南,以找出你是哪个南方公园角色。但是我有一些问题让它起作用。以下是我的一些代码:

在我的HTML文档中,代码如下所示:


<form name="characterform">
                <p>What kind of food do you like to eat?</p>
                <ul>
                    <li><input type="radio" name="1" value="" id="radio11" />Pizza</li>
                    <li><input type="radio" name="1" value="" id="radio12" />Chips and snacks</li>
                    <li><input type="radio" name="1" value="" id="radio13" />Health foods</li>
                    <li><input type="radio" name="1" value="" id="radio14" />Kosher</li>
                    <li><input type="radio" name="1" value="" id="radio15" />Powdered donut pancake surprise</li>
                    <li><input type="radio" name="1" value="" id="radio16" />Anything, as long as it's cheap</li>                   
                </ul>
                <input type="button" name="button" value="Calculate" id="button" onClick="start()" />
            </form>

在我的脚本文档中,我首先创建变量并使用if语句来更改它们,如下所示:

function start(){
if(document.characterform.radio11.checked)
    cartman += 5;
    kyle += 5;
    stan += 5;
    kenny += 5;
    butters += 5;

最后,我使用if语句来获得结果:

if(cartman > kyle && cartman > stan && cartman > kenny && cartman > butters)
    alert("Cartman! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(kyle > cartman && kyle > stan && kyle > kenny && kyle > butters)
    alert("Kyle! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(stan > cartman && stan > kyle && stan > kenny && stan > butters)
    alert("Stan! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else if(kenny > cartman && kenny > stan && kenny > kyle && kenny > butters)
    alert("Kenny! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
else
    alert("Error");

我用所有的收音机按钮完成了这个。问题是无论选择哪个单选按钮,结果总是一样的:凯尔。事实上,在查看数字的打印时,似乎Cartman是唯一变化的变量。其他四个变量完全相同,无论如何,凯尔得分最多。

除了创建变量外,所有脚本代码都在start()函数中。

我已经搜索了很多答案,但我还没有找到任何有相同问题的人 - 所以我猜测那里是我问题的简单解决方案。我希望有人能帮助我理解这一点。

3 个答案:

答案 0 :(得分:1)

在javascript if block中使用多行时,请使用...

if(document.getElementById('radio11').checked) {
    cartman += 5;
    kyle += 5;
    stan += 5;
    kenny += 5;
    butters += 5;
}

请注意大括号...... {}

您可能还想进行此修改...

if((cartman > kyle) && (cartman > stan) && (cartman > kenny) && (cartman > butters))
    alert("Cartman! " + "\n" + cartman + "\n" + kyle + "\n" + stan + "\n" + kenny + "\n" + butters);
...

...这将确保比较正确执行

答案 1 :(得分:0)

这不是访问元素的正确方法:

if(document.characterform.radio11.checked) //this assumes a form element named: radio11

因此,除了方括号之外,你应该检查一下:

if(document.getElementById('radio11').checked){ ... } //this assumes a form element with id: radio 11

答案 2 :(得分:0)

我认为你的逻辑应该与此类似。请记住,如果要在一个块中更改多个变量,需要使用大括号将它们包装在一起。

if(document.getElementById('radio11').checked) {
    cartman += 5;
}
else if(document.getElementById('radio12').checked) {
    kyle += 5;
}
else if(document.getElementById('radio13').checked) {
    stan += 5;
}
else if(document.getElementById('radio14').checked) {
    kenny += 5;
}
else if(document.getElementById('radio15').checked) {
    butters += 5;
}