Javascript 获取if语句外部的变量

Javascript 获取if语句外部的变量,javascript,jquery,Javascript,Jquery,我是JS和jQ的新手。我有以下代码: function CalculatePrice() { var a, b, c; if($(radiobtn1).is(':checked')) { a = "0"; alert(a); } if($(radiobtn2).is(':checked')) { a = "1"; alert(a); } if($(radiobtn3).is(':checked')) { a = "0";

我是JS和jQ的新手。我有以下代码:

 function CalculatePrice() {
  var a, b, c;
 if($(radiobtn1).is(':checked')) {
    a = "0";
      alert(a);
 }
 if($(radiobtn2).is(':checked')) {
    a = "1";
      alert(a);
 }
 if($(radiobtn3).is(':checked')) {
    a = "0";
      alert(a);
 }


 if($(radiobtn4).is(':checked')) {
    b = "350";
      alert(b);
 }
 if($(radiobtn5).is(':checked')) {
    b = "450";
      alert(b);
 }
 if($ (radiobtn6).is(':checked')) {
    b= "0";
      alert(b);
 }
 //This is what i'm asking about:
  alert(a);
}
最后一个警报(警报(a);)未运行。我猜这与变量范围有关,但不确定。如何访问if语句中设置的变量


谢谢

将ifs语句更改为else if语句,这将起作用。

我想这将起作用:

function CalculatePrice() {
  var a, b, c;
 if($('#radiobtn1').is(':checked')) {
    a = "0";
      alert(a);
 }
 if($('#radiobtn2').is(':checked')) {
    a = "1";
      alert(a);
 }
 if($('#radiobtn3').is(':checked')) {
    a = "0";
      alert(a);
 }


 if($('#radiobtn4').is(':checked')) {
    b = "350";
      alert(b);
 }
 if($('#radiobtn5').is(':checked')) {
    b = "450";
      alert(b);
 }
 if($ ('#radiobtn6').is(':checked')) {
    b= "0";
      alert(b);
 }
 //This is what i'm asking about:
  alert(a);
}
问题:


您必须选择ID,例如,
$(“#radiobtn1”)

我觉得有一种更有效的方法可以做到这一点。可能
var b=$('[type=radio]:checked').val()
如果打开浏览器的开发工具(通常是F12,如果不查看菜单)并转到控制台选项卡,您会看到什么错误?如果所有这些
radiobtnX
变量都存在,除非发生错误,否则您应该会看到最终警报。@T.J.Crowder这不是问题,因为
$(x)
如果发现与选择器
x
不匹配,则仍然返回jQuery对象。radiobtn1、2、3等是否在代码中的某个位置定义?或者它们是ID还是类?我看不出有什么帮助。问题中的
alert()
if
块之外。@kriv:这表明您稍后的
radiobtnX
变量之一不存在,并且您得到了一个错误(请参阅对问题的评论)。在某些情况下,上述方法会产生避免错误的副作用,但不是解决方案。(也就是说,当您在一系列条件中重复赋值给单个变量时,
else if
通常是您想要的。)