jquery不接受变量作为选择器,字符串有效

时间:2016-12-27 01:18:37

标签: javascript jquery twitter-bootstrap

我编写了这个脚本,该脚本在收到来自MQTT的消息时运行:

function onMessageArrived(message) {

    var fullmsg=message.destinationName.split("/"); 
    var msg=fullmsg[3]; //retrieves deviceId 2780 (string)
    var payload=message.payloadString; //value of device recieved
    console.log(msg, payload); // gives 2870, 100
    if(payload == 100) {
        $('#2780').bootstrapSwitch('setState', true); //works and toggles switch
    } else if (payload == 0) {
        $("#" + msg).bootstrapSwitch('setState', false); //doesn't work
    }
    //client.disconnect();
};

这个想法是这个脚本打开或关闭一个自举开关。我想基于变量msg得到的devideId动态地做这个。当我手动输入选择器'#2780'一切都有效。当我使用来自msg的变量时,它不起作用。它一定是傻事,但我刚开始使用jquery所以需要一些帮助。

1 个答案:

答案 0 :(得分:0)

添加:

console.log("Setting switch to false");

...前:

$("#" + msg).bootstrapSwitch('setState', false);

这样你就可以验证是否甚至调用了bootstrap。之前,您声明有效负载= 100:

console.log(msg, payload); // gives 2870, 100

鉴于此,不会

else if (payload == 0)

阻止将开关设置为false?