以下一段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
我不确定这是否是错字,但"scr-table"
不等于"scr_table"
。
它们不同-第一个具有a -
,第二个具有_
===
在比较JavaScript中相等性的值时,还应该使用运算符。它不会尝试强制类型,因此您可以对相等性进行真正的比较。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句