如果声明为真但未执行

时间:2016-05-26 16:13:05

标签: javascript jquery if-statement

以下javascript代码并不是我所期望的。这是在ajax调用的成功执行的代码,但是:虽然在$ .each value1.html_id和redraw或reload的某些轮次相等(并且它们都是字符串),if(){}代码永远不会被执行。我在这里缺少什么?

if语句之外的console.log()被执行,我可以看到值是相同的,但if的{}中的代码永远不会被执行

success: function(result) {
    activaTab(tab_id);
    $.each(tables, function(key, value1) {
        console.log(value1.html_id + redraw + reload)
        if (value1.html_id == redraw) {
            console.log('works');
            value1.table.columns.adjust().draw();
        }
        if (value1.html_id == reload) {
            console.log('works2');
            value1.table.ajax.reload(null, false);
        }
    });
}

控制台每次都看起来像这样(在ifs之外的324行)

scr_table2.js:324 scr-tablescr_tablescr_table1
scr_table2.js:324 scr-table1scr_tablescr_table1
scr_table2.js:324 scr-table2scr_tablescr_table1
scr_table2.js:324 scr-table3scr_tablescr_table1

1 个答案:

答案 0 :(得分:5)

我不确定这是否是拼写错误,但"scr-table"不等于"scr_table"

他们有所不同 - 第一个有-,第二个有_

在比较JavaScript中的相等值时,您还应该使用===运算符。它并没有试图强制类型,因此你可以得到真正的平等比较。