如果else语句不能正常工作

时间:2014-05-20 15:38:56

标签: javascript if-statement

在此功能中,用户在下拉菜单中选择一个值,无论选择何种值,都会将var B更改为相应的值。

function test(){
    var A = ["", "A", "B", "C"];
    var B = document.getElementById("myfile");

    if(A.value = "A"){
        B.selectedIndex = [2];
    }
    else if(A.value = "B"){
        B.selectedIndex = [4];
    }
    else if(A.value = "C"){
        B.selectedIndex = [1];
    }
}

我遇到的问题是,每次选择B或C时,它总是默认为索引[2]而不是[4]或[1]。

4 个答案:

答案 0 :(得分:5)

您要分配的时间比较。使用==而不是=进行比较。

if(A.value == "A"){
    B.selectedIndex = [2];
}
else if(A.value == "B"){
    B.selectedIndex = [4];
}
else if(A.value == "C"){
    B.selectedIndex = [1];
}

答案 1 :(得分:3)

=是作业

==测试内容是否相等

===测试内容和数据类型的相等性

在你的情况下,=肯定是一个错字。我建议使用===来获得最大的程序稳定性。

有些人倾向于写"A" == A.value,所以错位的作业会给你一个语法错误。

答案 2 :(得分:2)

您要在ifs中分配值而不对其进行测试。这将返回分配的值。 if 条件为真除非分配以下值并因此返回, false 0 空字符串 null 未定义 NaN 。这就是你输入第一个if语句块的原因。

将单个等于更改为双倍或三等于

if(A.value == "A"){
    B.selectedIndex = [2];
}
else if(A.value == "B"){
    B.selectedIndex = [4];
}
else if(A.value == "C"){
    B.selectedIndex = [1];
}

答案 3 :(得分:0)

使用== not =

您的陈述检查是否可以设置值。(每次......)