我已将所选选项分配给变量。但是,当我使用if语句比较变量和字符串时,无论变量是否等于我的字符串,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);
}
});
});
答案 0 :(得分:4)
您正在尝试使用=
比较它们,这实际上会将'arts'分配给selectedMajor
变量。请使用==
来进行比较。
如果需要确保类型也相同,请使用===
。
答案 1 :(得分:2)
在JavaScript =
中为变量赋值时,==
实际上是等价性检查运算符。
还使用trim()
函数来检查比较的值是否不包含任何前导/尾随空格。
尝试更改,
if (selectedMajor = 'arts') {
为
if (selectedMajor.trim() == 'arts') {
希望这会有所帮助!。
答案 2 :(得分:1)
您的if语句使用赋值=。您想与==进行比较。
答案 3 :(得分:0)
selectedMajor = 'arts'
是Assignment,它将始终在左侧返回该值。
简单赋值运算符用于为变量赋值。赋值运算将得出赋值
let x = 3;
console.log(x = 3)
如果要比较值,则应使用抽象等式==
或严格等式===
let x = 3;
console.log(x === 3)