2016-05-26 5 views
1

次のjavascriptコードは、私が期待しているものではありません。これはajax呼び出しの成功で実行されるコードですが、$。each value1.html_idとredrawまたはreloadのいくつかのラウンドでは等しく(両方とも文字列です)、if(){}コードは決して実行されません。私はここで何が欠けていますか?文は真であるが実行されていない

にconsole.log()ステートメントが実行されます、私は値が同じであるが、{}の中のコードは

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); 
     } 
    }); 
} 

コンソールの外観を実行していない取得しない場合に見ることができれば外側このたびのよう

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

'console.log'を使うときは、' console.log(value1.html_id、redraw、reload) 'を実行する必要があります。そうすれば、3つの変数を区別することができます。 –

+5

'-'と' _'の間に 'scr-table'と' scr_table'が混在しているように見えます –

+0

console.logの後ろにセミコロンがありませんか? –

答えて

5

(324 IFS外線である)、これはタイプミスですが、"scr-table""scr_table"に等しくない場合、私はわかりません。

彼らは異なる - 最初は、JavaScriptでの平等のための値を比較するときにも===演算子を使用する必要があります-_

秒を持っています。タイプを強制することはありませんので、あなたは平等の真の比較を得ることができます。

+0

うわー、しばらくの間それを見つめた後、もはやそれらのミスはもう見られません! – Niels

+0

@Niels私の編集を見て、 '==='演算子の使用を検討してください。私はあなたを助けることができてうれしい! ;-) – glcheetham

+0

これはPHPと異なりますか?そこでは、型が一致しなければならないと思った。 – Niels

関連する問題