我的if
语句else
和else if
存在问题。
这是我的代码:
function draw(d) {
var testarray = JSON.parse(a);
var testarray1 = JSON.parse(a1);
var testarray2 = JSON.parse(a2);
var Yaxis = $("#<%=hidden10.ClientID%>").val();
if (d == 1)
{
var c = testarray
Yaxis = 'data';
}
else if (d == 1)
{
var e = testarray1
Yaxis = 'data1';
}
else if (d == 2)
{
var c = testarray
Yaxis = 'data2';
}
else if (d == 2)
{
var e = testarray1
Yaxis = 'data3';
}
else(d == 3)
{
var e = testarray1
Yaxis = 'data4';
}
当我调试代码时,它只会点击d==1
,然后转到d==3
并跳过1
和2
。对于yaxis
,它只会显示data4
,并且不会在我的图表上显示data
,data1
和data2
。
显然我的else
声明不正确,但我googled the if
statement似乎我已经正确完成了,但它无效。
d
是一个单选按钮,通过vb中的代码调用:
Select Case RadioButtonList1.SelectedItem.Value
Case 1
Dim Yaxis As String
If RadioButtonList1.SelectedItem.Value = 1 Then
Yaxis = "data"
End If
hidden10.Value = Yaxis
For Each row In Year1
testarray.Add(row("kWh"))
Next row
Dim arrayJsonTest1 As String = serializer1.Serialize(testarray)
Dim arrayJson11 As String = serializer1.Serialize(testarray1)
hidden.Value = arrayJsonTest1
hidden1.Value = arrayJson11
hidden2.Value = arrayJson12
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType, "draw", "javascript:draw(1);", True)
答案 0 :(得分:3)
if (d == 1)
{
var c = testarray
Yaxis = 'data';
}
else if (d == 1)//why is this same?
{
var e = testarray1
Yaxis = 'data1';
}
if 和 else if else 具有相同的条件。更正。
if (d == 1)
{
var c = testarray
Yaxis = 'data';
var e = testarray1
Yaxis = 'data1';
}
else if(d == 3)
{
var e = testarray1
Yaxis = 'data4';
}
答案 1 :(得分:1)
您的主要问题(忽略另一个已经突出显示的答案重复)是在代码的末尾:
else (d == 3)
{
var e = testarray1
Yaxis = 'data4';
}
在本节中,您实际上并没有if
;因此,JavaScript解析器将其视为:
else true;
{
var e = testarray1
Yaxis = 'data4';
}
其中(d == 3)
的评估结果为true
,然后是一个单独的代码块,它会独立于Yaxis
阻止if ... else
块更新switch
的值。
更简洁的方法是使用switch (d) {
case 1:
Yaxis = 'data';
break;
case 2:
Yaxis = 'data1';
break;
... etc ..
}
语句:
var
请注意,'c','e'等的值在{
和}
括号内定义为{{1}},因此它们的值在外部不可用那些。德尔>