我已将选定的选项分配给变量。但是,当我使用if语句比较变量和字符串时,无论变量是否等于my string,if语句都会执行代码。
我已经尝试重写代码并对javascript if语句进行一些研究,但据我所知,我不知道我的代码中有任何错误。
$(document).ready(function(){
$("#main_dropdown").change(function(){
let selectedMajor = $(this).children("option:selected").val();
if (selectedMajor = 'arts') {
alert("Your selected major is: " + selectedMajor);
}
});
});
你试图用=
来比较它们,它实际上将'arts'分配给selectedMajor
变量。使用==
代替它们。
如果您需要确保类型相同,请使用===
。
在javascript中,=
用于为变量赋值,==
实际上是eqaulity check运算符。
还使用trim()
函数检查比较值是否包含任何前导/尾随空格。
尝试改变,
if (selectedMajor = 'arts') {
如,
if (selectedMajor.trim() == 'arts') {
希望这可以帮助!。
你的if语句使用的是赋值=。您想要与==进行比较。
selectedMajor = 'arts'
是一个Assignment,它将始终返回左侧的值。
简单赋值运算符用于为变量赋值。赋值操作将计算为指定的值
let x = 3;
console.log(x = 3)
如果你想比较你应该抽象平等==
或Strict Equality ===
的价值
let x = 3;
console.log(x === 3)