离开if语句后重置Javascript变量

Javascript variable reset after leaving if statement?

本文关键字:Javascript 变量 if 语句 离开      更新时间:2023-09-26

我是C#背景javascript的新手,所以当我偶然发现以下情况时,我很感兴趣:

编辑:我已经收录了这期杂志的原文。警报文本显示为"未定义"。我查询无线电是否正确?

index.html

<html>
    <head>
        <script type="text/javascript" src="scripts.js"></script>
    </head>
    <body>
        <form>
            10 <input type="radio" name="group1" value="10"></br>
            20 <input type="radio" name="group1" value="20"></br>
            30 <input type="radio" name="group1" value="30"></br>
            <input type="button" value="Submit" onclick="buttonPressed()">
        </form>
    </body>
</html>

scripts.js

function buttonPressed()
{
var radios = document.getElementsByName("group1");
var checkedRadio;
for(var i in radios)
{
    if(radios[i].checked)
    {
        checkedRadio = i;
    }
}
var tipAmount;
if(checkedRadio == 0)
{
    tipAmount = 10;
}
if else(checkedRadio == 1)
{
    tipAmount = 20;
}
if else(checkedRadio == 2)
{
    tipAmount = 30;
}
alert(tipAmount);
}

为什么alertText未定义?

感谢

JavaScript没有块作用域,只有函数作用域。所以你给我们的代码会起作用的。

这段代码应该可以工作,我建议您下载Firebug,这样您就可以访问脚本,并在第一行放置一个断点,然后按F10对每一行进行调试,您应该很快找到错误或告诉我们它的作用。

你能试试这样的循环吗

for( i = 0; i < radios.length; i++ ) 
{
    if(radios[i].checked)
    {
       checkedRadio = i;
    }
}

此外,您可以使用复选框中的值,而不是对提示进行硬编码。

你有jquery吗?

你可以做一些简单的事情,比如这个

$('.group1:checked').each(function() {
tip = this.val();
});