我的If语句在Jquery中不起作用

问题描述 投票:-2回答:4

我已将选定的选项分配给变量。但是,当我使用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);
        }
    });
});
javascript jquery
4个回答
4
投票

你试图用=来比较它们,它实际上将'arts'分配给selectedMajor变量。使用==代替它们。

如果您需要确保类型相同,请使用===


2
投票

在javascript中,=用于为变量赋值,==实际上是eqaulity check运算符。

还使用trim()函数检查比较值是否包含任何前导/尾随空格。

尝试改变,

if (selectedMajor = 'arts') {

如,

if (selectedMajor.trim() == 'arts') {

希望这可以帮助!。


1
投票

你的if语句使用的是赋值=。您想要与==进行比较。


0
投票

selectedMajor = 'arts'是一个Assignment,它将始终返回左侧的值。

简单赋值运算符用于为变量赋值。赋值操作将计算为指定的值

let x = 3;
console.log(x = 3)

如果你想比较你应该抽象平等==或Strict Equality ===的价值

let x = 3;
console.log(x === 3)
© www.soinside.com 2019 - 2024. All rights reserved.