if文を使用した条件によるボタンの表示非表示について

このQ&Aのポイント
  • if文を使用してボタンの表示非表示を切り替える際、条件の記述方法によって表示非表示の挙動が異なります。
  • 現在のコードでは、点数を超えてもボタンが表示されたままになってしまっています。
  • 条件を追記し、点数が超えている場合にボタンを非表示にするように修正してください。
回答を見る
  • ベストアンサー

if文について

おはようございます。 if文について聞きたい事があります。 現在jqueryでJSONを使用して「もっと読む」みたいな感じで、 ボタンをクリックすると指定した数だけ画像が表示されるという物を作っているのですが、 その際にif文で、全ての点数を超えたらボタンを非表示にし、点数を超えていなかったら表示するという物を作っているのですが、 現在、 (addedは今までの点数を加えて来たもので、 fillterが全ての点数で、 $buttonがボタンとなります。) if(added > fillter.length){ $button.hide(); }else{ $button.show(); } とやると、点数を超えても表示されたままですが、 if(added < fillter.length){ $button.show(); }else{ $button.hide(); } とやると、点数を超えたら非表示になります。 どういう事が起こっているのでしょうか。 全文がやや長いため、省略しております。 大変申し訳ありませんが、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

addedをどのように計算しているのかわかりませんが、 if(added < fillter.length) が意図通り動作するということであれば、 その逆は if(added > fillter.length) ではなく if(added >= fillter.length) です。 つまり、addedの計算の仕方によりますが、 addedの値とfillter.lengthの値が等しいケースは 点数を超えているという判断にする必要があるのでは ないでしょうか?

tmctmc
質問者

お礼

返答が遅れて申し訳ありません。 そのようにやったら出来ました!!本当にありがとうございます。 if分を使い慣れていない事を改めて認識しました。精進したいと思います。

関連するQ&A

  • jQueryでshow/hideが上手く行かない

    入力フィールドとボタンを作成し、ボタンを押すたびに入力フィールドが表示・非表示を繰り返すようにしたいと思っています。 入力フィールドが表示されているときにはボタンは"hide"、非表示の時は"show"が表示されている仕様です。 <div id="input"><input type="text" name="something"></div> <input type="button" id="button" value="hide"> 以下のようにjQueryを組んでみました。 $(document).ready(function(){ if($("#button").attr("value") == "hide"){ $("#button").click(function(){ alert("VALUE=" + $("#button").attr("value")), $("#input").children().hide(), $("#button").attr("value", "show"); }); } else if($("#button").attr("value") == "show"){ $("#button").click(function(){ alert("VALUE=" + $("#button").attr("value")), $("#input").children().show(), $("#button").attr("value", "hide"); }); } }); まず、hideボタンを押すとhideのアラートが出てフィールドが非表示になり、showというボタンのみが残ります。 次にshowボタンを押すと、showのアラートは表示されますが、フィールドが再表示されず、ボタンもshowのままです。 elseのalertまで行っているのにその後が機能しないのは何故でしょうか?

  • jQueryを使ってhtmlのidとclassを見てif文を書きたいと

    jQueryを使ってhtmlのidとclassを見てif文を書きたいと思ってます。 if id="EditButton" class="active button"がある場合~ ってしたいのでどのようにすればいいのでしょうか。 if(jQuery('#EditButton').is('active button')){ とかにしてみましたがマッチしてくれませんでした。 宜しくお願い致します。

  • if文

    if文の書き方でHTMLをphpのif文やwhileなどで挟んで表示する方法なんですがendifをやらなくても表示できたのですがこの書き方でもいいでしょうか? <?php $sample=6; if ($sample > 5) { ?> <p>5より大きいです。</p> <?php } else { ?> <p>5より小さいです。</p> <?php } ?>

    • ベストアンサー
    • PHP
  • jsについて

    jsのプログラムで質問があります。 p id1を押したらテスト1が表示されますが、p id2を押したら1が表示されたまま2が表示されてしまいます。 2を押したら1を隠して2を表示させたいのですが、やり方を教えてください。 3も、同じようにしたいです。 <p id="p1">テスト1</p> <p id="p2">テスト2</p> <p id="p3">テスト3</p> <input type="button" id="button1" value="ボタン1" /> <input type="button" id="button2" value="ボタン2" /> <input type="button" id="button3" value="ボタン3" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> $(function() { // 初期表示を非表示にする $('#p1').hide(); // 初期表示を非表示にする $('#p2').hide(); // 初期表示を非表示にする $('#p3').hide(); $("#button1").click(function() { // 表示する $("#p1").show(); }); $("#button2").click(function() { // 表示する $("#p2").show(); }); $("#button3").click(function() { // 表示する $("#p3").show(); }); }); </script>

  • jQuery1.4.2、jQueryUI1.8.4、toggle()の

    jQuery1.4.2、jQueryUI1.8.4、toggle()の状態を初期化 jQuery1.4.2、jQueryUI1.8.4にて、 toggle()を使用したあと、別のボタンなどで、そのtoggleの状態を初期化することは出来るのでしょうか。 <a id="button">ボタン</a> <div id="info"> <a id="close">閉じる</a> <p>あいうえお</p> </div> <script> $('#button').toggle( function(){$('#info').show('slide')}, function(){$('#info').hide('slide')} ); $('#close').click(function(){$('#info').hide('slide');}); </script> 「ボタン」を押して#infoを表示した後、「閉じる」を押して非表示にし、 もう一度「ボタン」を押すと、hide()が実行されてしまうため、このときにshow()が実行されるようにしたいのです。 フラグを使って.click()で切り替えれば作れますが、 せっかくtoggle()のようなメソッドがあるなら、それを利用できないかと思ったのですが。

  • if文について

    if文を利用してリストの表示をしようとしています。 ドロップダウンリストは <SELECT name="type"> <OPTION value="all">指定しない </OPTION> <OPTION value="1">タイプA系列</OPTION> <OPTION value="2">タイプB系列</OPTION> となっています。 データはチェックボックスで1か空白で保存されていて、A系列は「s_1」「s_2」、B系列は「s_3」「s_4」「s_5」にチェックが入っているかどうかを振り分けしたいんです。 なので、ドロップダウンリストで「タイプA系列」を選択したら「s_1」「s_2」に1が入っている物のみ表示するというものです。 現在のところこの形です。 if ($FORM{'type'} ne 'all') { if ($FORM{'type'} eq '1'){ if ($s_7 || $s_8 eq 1) { ; } else { next; } }else{ if ($s_9 || $s_10 || $s_11 eq 1) { ; } else { next; } } } このようにやってみましたが全部表示されてしまいます。 どのように直したらOKでしょうか? お願いします。

    • ベストアンサー
    • Perl
  • jQueryでcookieの取得

    jQuery初心者のため、教えてください。 やりたいことは 「非表示ボタン」というボタンがあり それをクリックした人は 別のある要素を、ずっと非表示にする。 …ということです。 「非表示ボタン」をクリックした人の情報をcookieで取得し、 それをif文で条件分岐し、 その該当の要素をhideとshowで切り分けるのはわかるのですが、 cookie値の取得の仕方とかが、いまいち分かっておりません。 こんなあいまいな質問で申し訳ないのですが、 特にcookieの取得のところを教えていただけると、 助かります。 宜しくお願いいたします。

  • if文が上手くいかない・・・

     連続投稿失礼します。  if文が上手くいきません。$hensuuの値が間違っているのにもかかわらず、条件があっている時の処理が実行されてしまいます。  なにやら癖になっているようで、if文を書くたびこのような事態が発生します。(PHPに限らず、C言語でまで・・・。)一体何が原因なのでしょうか? <?php $hensuu = "right"; if($hensuu = "wrong"){ print <<<_EOT_ 条件に合ってないはずなのに、こっちが表示されちゃう。 _EOT_; } else { print <<<_DRK_ 本来こっちが表示されるはずなのに、表示されない・・・。 _DRK_; } ?>  よろしくお願いします。

    • ベストアンサー
    • PHP
  • パールスクリプトのif else文について

    複数の種類のif else文のスクリプト結果を まとめて表示する方法はあるのでしょうか? たとえば「2000年」に対しての データ(1)のif else文のデータ内容は「1月は猫 2月は犬・・」で データ(2)のif else文は「1月は鳥 2月は申・・」であるとすると、 2000年の1月は「猫と鳥」と両方のif else文の結果を 表示させたい場合は、スクリプト的にはどのように記述すれば よろしいでしょうか? よろしくお願い致します。

    • ベストアンサー
    • CGI
  • if文でelseを使わずに否定

    質問させてください。 現在JSを勉強させていただいています。 if( $( 'input:checkbox[value="448"]' ).is( ':checked' ) ) { jQuery('.abc').css({display:'none'}); } 上記の文はチェックボックスにチェックが入っていたら CSSを置き換えるというものなのですが これをelseを使用せずにチェックが入っていなかったら CSSを置き換える という文にすることは可能でしょうか? もしよろければご回答のほどよろしくお願いいたします。

専門家に質問してみよう