2016-07-22 13 views
-5

if/elseステートメントが正しく動作しない理由がわかりませんか?if/elseステートメントが機能しないのはなぜですか?

はJavaScript

var month_games = "Games"; 
var month_hit = "Hit"; 
var month_stake = "Stake"; 
var month_profit = "Profit"; 
var games_month = 0; 
var hit_month = 0 + "%"; 
var stake_month = 0; 
var profit_month = 0; 

$(document).ready(function(){ 
    document.getElementById("Games_Month").innerHTML = month_games; 
    document.getElementById("Hit_Month").innerHTML = month_hit; 
    document.getElementById("Stake_Month").innerHTML = month_stake; 
    document.getElementById("Profit_Month").innerHTML = month_profit; 
}); 


$('#January').click(function(){ 
    if ($('#Games_Month').innerHTML = month_games) 
     {$('#Games_Month').innerHTML = games_month;} 
    else {$('#Games_Month').innerHTML = month_games;} 
}); 

HTML

<table class="table"> 
    <thead> 
    <tr id="January"> 
     <th>January</th> 
     <th id="Games_Month"></th> 
     <th id="Hit_Month"></th> 
     <th id="Stake_Month"></th> 
     <th id="Profit_Month"></th> 
    </tr> 
    </thead> 

さて、私は#januaryをクリックしたとき、私は他のIDの他の変数が何であるかに変更するにはのinner.HTMLを好きですが、クリックされたときでしょう再び、それを元に戻す。

私のコードで何が問題になっていますか?

+3

jQueryの一切 'innerHTML'を持っていないためでhtml()のような適切な方法を、使用している場合は? – adeneo

+1

'='は代入演算子ですので、 'if'ステートメントで等号演算子として' == 'または' === 'を使うべきです –

答えて

-1

jQueryのは、それが代わりにhtml()を持って、何のinnerHTMLを持っていません。

単一の=はアシグメントであり、2つの==は非厳密な比較であり、3つは厳密な比較である。

必要はありませんのために/他はここですべて、単にコールバック

$(document).ready(function(){ 
    var stake_month = 0; 
    var profit_month = 0; 
    var month_games = "Games"; 
    var month_hit = "Hit"; 
    var month_stake = "Stake"; 
    var month_profit = "Profit"; 
    var games_month = 0; 
    var hit_month = 0 + "%"; 

    $("#Games_Month").html(month_games); 
    $("#Hit_Month").html(month_hit); 
    $("#Stake_Month").html(month_stake); 
    $("#Profit_Month").html(month_profit); 

    $('#January').click(function(){ 
     $('#Games_Month').html(function(_, html) { 
       return html === month_games ? games_month : month_games; 
     }); 
    }); 
}); 
+0

この例を使用した場合、この例は少なくなりますが、完璧に動作します。ありがとうございます。 htmlの代わりにクラスでこれを使用できるかどうか尋ねてもいいですか? – ShrekTek

+0

@ShrekTek - もちろん、jQueryの 'addClass'と' removeClass'もコールバックをサポートしていますが、シンタックスは多少異なる場合があります。 – adeneo

+0

この例と同じようにすればよいですか?クラスを変数にラップし、そのように呼び出すようにしますか? – ShrekTek

2

第2の=をifで忘れてしまいました。そこにはhtml()ではなくinnerHTMLであり、DOM要素ではなくjQueryオブジェクトがあるためです。

$('#January').click(function() { 
    if($('#Games_Month').html() == month_games) { 
     $('#Games_Month').html(games_month); 
    } 
    else { 
     $('#Games_Month').html(month_games); 
    } 
}); 
+0

ああありがとう!今すぐ完璧に動作します:)私は、javascriptとJQueryの両方を少し使っています。 – ShrekTek

+0

@ShrekTekを歓迎します! – eisbehr

関連する問題