Jquery:Lightswitch = on,然后有一个If语句,看看lightswitch是否打开,为什么这不起作用?

and*_*ick 0 variables jquery if-statement

为什么这段代码不起作用?如何使lightswitch = ON或OFF,然后再测试它是ON还是OFF?我可以在不处理更改类或ID的情况下执行此操作吗?

$(document).ready(function(){
    $('p').click(function(){
         var lightswitch = ON;

         if (lightswitch == ON) {
            alert('LIGHTSWITCH IS ON.')
                } else {
                alert('OFF.')
                }

          })
})
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

可能没有名为ON的变量.您可以使用布尔值:

$(document).ready(function() {
    $('p').click(function() {
        var lightswitch = true;
        if (lightswitch) {
            alert('LIGHTSWITCH IS ON.')
        } else {
            alert('OFF.')
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

或字符串值:

$(document).ready(function() {
    $('p').click(function() {
        var lightswitch = 'ON';
        if (lightswitch == 'ON') {
            alert('LIGHTSWITCH IS ON.')
        } else {
            alert('OFF.')
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

显然,将局部变量设置为硬编码值,然后立即使用if语句测试该值并不是很有用.您可以使用将设置为不同值的全局变量:

var lightswitch = true;
$(document).ready(function() {
    $('p').click(function() {
        if (lightswitch) {
            alert('LIGHTSWITCH IS ON.')
        } else {
            alert('OFF.')
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

然后你可以设置lightswitch = false;代码的其他部分.