NTR893
@NTR893 (おいなり)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

IF文での、変数について

Q&A

Closed

解決したいこと

Jqueryで、クリックするたびに、赤色と青色が交互に表示される文を作ろうと思ったのですが、動かしてみると、一回赤色になって、それ以降、赤色のまま変化がなかったです。

<script>
  var test1 = 0;
$(function(){
$('p').click(function(){
  if (test1 == 0){
    $(this).css('color', 'red');
    test1 == 1; 
  };
  if(test1 == 1){
  $(this).css('color', 'blue');
  test1 == 0;
}
}
);
});
</script>

test1という変数を作って、If文で、test1が0だった場合、
色を赤くしてtest1の数値を1にするという文と、elseifで、test1が1
だった場合、色を青くして、test1の数値を0にするという文を作って、
クリックするたびに、赤色と青色が交互に表示される文を作ろうと思った
のですが、動かしてみると、一回赤色になって、それ以降、赤色のまま
変化がなかったです。

考察

1度、赤色にはできたので、.cssの文は大丈夫だと思うのですが、そこから青にできないという事は、test1が、1にならずにそのまま0になったままだと思うのですが、だとすると、どうやったらtest1を1に変えることが出来るのか教えて頂きたく質問しました。

1

2Answer

  if($(this).css('color') == 'blue'){
    $(this).css('color', 'red');
  }else{
    $(this).css('color', 'blue');
  };

と書けば、何がしたいかわかりやすいかも?

1Like

こんにちは

以下が原因で比較演算子のため、うまくtest1を更新できていないとかでしょうか?

 if (test1 == 0){
    $(this).css('color', 'red');
    test1 == 1;  // ここが代入演算ではなく比較演算子になっている
  };

正しくはこう?

 if (test1 == 0){
    $(this).css('color', 'red');
    test1 = 1;  
  };

参考になれば幸いです。

タイポのような気がしますが一応演算子のリンクです。参考までに
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment_operators

0Like

Your answer might help someone💌