在此功能中,用户在下拉菜单中选择一个值,无论选择何种值,都会将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]。
答案 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 =
您的陈述检查是否可以设置值。(每次......)