2017-12-28 21 views
-6

なぜ私のelseステートメントが機能しなかったのか分かりません。Elseステートメントが機能しない

実際に起きたのは初めてのことです。console.log()を使用して確認しました。

これは私のコードです:私が試してみました

setTimeout(function() { 
    var b = 2; 
    var d = 80000; 
    if ("div[class='resultInfo resultLose']") { 
    setTimeout(function() { 
     var a = ($("input[name='_4']").val().replace(/\s+/g, '')); 
     var c = a * b; 
     $("input[name='_4']").val(c); 
     $("input[value='Play!']").click(); 
    }, 1000); 
    } else if ("div[class='resultInfo resultWin']") { 
    setTimeout(function() { 
     $("input[name='_4']").val(d); 
     $("input[value='Play!']").click(); 
    }, 1000); 
    } 
}, 4500); 

  1. if
  2. setTimeoutは "if ("div[class='resultInfo resultWin']")"

これは最初の使用削除削除しますifでもelseiftrueです。私は何をすべきかわかりません。

+2

? – j08691

+2

あなたの問題を示す機能的な例を投稿してください。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)デモを追加するには、編集モードでヘッダーの '<>'アイコンをクリックすることもできます。 –

+0

div [class = 'resultInfo resultLose']が存在する場合、結果を待っている場合は –

答えて

2

現在のif条件とelse/if条件は、常に真と評価されるランダムな文字列の真実性をテストするだけです。最初の条件はtrueと評価されるので、else if条件をスキップします(ただし、この場合もtrueと評価されます)。

実際にテストしたかったのは、セレクタ文字列としての文字列と一致する要素があるかどうかです。その場合、最も単純な修正は、if文とelse文をjQuery文のように変更し、結果の長さをチェックするように変更することです。

if ($("div[class='resultInfo resultLose']").length > 0) 

と `( "divの[クラス= 'resultInfo resultLose']")場合`行うことになっているもの

else if ($("div[class='resultInfo resultWin']").length > 0) 
+0

ありがとうございます。それは$を逃してしまいました 答えはとてもシンプルでした。 –

1

あなたのコードは意味をなさない。

ifは常にtrueと評価されるため、else ifを入力していません。

if ("div[class='resultInfo resultLose']")は常にtrueです。比較していないので、文字列を評価しています。これはif (true)と同じです。

私は、JQueryの選択やそのようなコードがいくつか欠けています。

2

if条件の中に空でない文字列があります。これは毎回trueと評価されます。したがって、ブロックされることは決してありません。

関連する問題