以下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
答案 0 :(得分:5)
我不确定这是否是拼写错误,但"scr-table"
不等于"scr_table"
。
他们有所不同 - 第一个有-
,第二个有_
在比较JavaScript中的相等值时,您还应该使用===
运算符。它并没有试图强制类型,因此你可以得到真正的平等比较。