質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1600閲覧

【JavaScript】if関数について

Shi_hope

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/12/14 08:07

###8つのチェックボックスに選択した数によって変わる結果をアコーディオンで見せたい。
JSでIFを使ってチェックの数によって結果が変わる文を書いています。
詳しく書くとチェックボックスが8つあり、0〜3個の場合はA 4〜7個の場合はB 8個全ての場合はCというものにしたいです。チェックボタン群があり、最後に結果を見るボタンを押すことによって、A,B,Cどれかの結果が見えるという感じです。

###該当しない結果の答えまでが表示されてしまう

display:none;が効いてない ###該当のソースコード ```JS $(function(){ $(".diag_btn").click(function () { var num = $('.check_btn img.on').length; if(num == 0 || num == 3) { $('.anc00_03').css('display','block'); $('.anc04_07').css('display','none'); $('.anc08').css('display','none'); }else if (num == 4 || num == 7){ $('.anc00_03').css('display','none'); $('.anc04_07').css('display','block'); $('.anc08').css('display','none'); }else if (num >= 8){ $('.anc00_03').css('display','none'); $('.anc04_07').css('display','none'); $('.anc08').css('display','block'); } }); });

###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/12/14 08:08

現在の状態を再現できるミニマムコードを提示してください。
kei344

2016/12/14 08:20

「JS」を「```JavaScript」に置き換えればコードブロックが正しく表示されると思います。
guest

回答3

0

ベストアンサー

'.check_btn img.on'

というのはcheck_btnクラスのついた何かにチェックだとonクラスが着いたimgが付加されるのでしょうか?
そのあたりを省略して書かれてもチェック状態を切り分けるロジックは厳しいですね

範囲の指定は最初に最小値をチェックしてその後各上限値を順にチェックすればいいでしょう

javascript

1if(num >= 0){ 2 if(num <= 3) { 3 //0~3の処理 4 }else if(num<=7){ 5 //4~7の処理 6 }else{ 7 //8以上の処理 8 } 9}else{ 10 //必要なら0以下の処理 11}

追記

ダミーでチェックボックスを使った例をあげますが、cssのdisplayをいじるなら
show()とhide()の方が一般的で、条件で表示を切り替えるならtoggleで十分です。

HTML

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script> 3$(function(){ 4 $('input[type=checkbox].check_btn').on('change',function(){ 5 var num=$('input[type=checkbox].check_btn:checked').length; 6 $('.anc00_03').toggle(num>=0 && num<=3); 7 $('.anc04_07').toggle(num>=4 && num<=7); 8 $('.anc08').toggle(num>=8); 9 }); 10}); 11</script> 12<input type="checkbox" class="check_btn"> 13<input type="checkbox" class="check_btn"> 14<input type="checkbox" class="check_btn"> 15<input type="checkbox" class="check_btn"> 16<input type="checkbox" class="check_btn"> 17<input type="checkbox" class="check_btn"> 18<input type="checkbox" class="check_btn"> 19<input type="checkbox" class="check_btn"> 20<input type="checkbox" class="check_btn"> 21<input type="checkbox" class="check_btn"> 22<div class="anc00_03">anc00_03</div> 23<div class="anc04_07" style="display:none">anc04_07</div> 24<div class="anc08" style="display:none">anc08</div>

投稿2016/12/14 08:21

編集2016/12/14 09:07
yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shi_hope

2016/12/14 08:46

>>というのはcheck_btnクラスのついた何かにチェックだとonクラスが着いたimgが付加されるので>>>しょうか? >>そのあたりを省略して書かれてもチェック状態を切り分けるロジックは厳しいですね はいonクラスのimgが付加されます。 サンプルコードありがとうございます。 こちらご参考にさせていだだきます。
yambejp

2016/12/14 09:04

今回のケースならifで分ける必要もないですのでサンプル追記しておきました
guest

0

if文の条件が(num == 0 || num == 3)ではnumが0または3のとき となります。※1,2は該当しない。
以下のように範囲を条件としましょう

javascript

1if (num <= 3) { // num が0,1,2,3の時 2 ・・・略・・・ 3} elseif (num <= 7) { // num が4,5,6,7の時 4 ・・・略・・・ 5} else { // 上記以外のとき 6 ・・・略・・・ 7}

if関数 では無く if文ですね

投稿2016/12/14 08:15

編集2016/12/14 08:16
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shi_hope

2016/12/14 08:44

素早いご返答、ご指摘ありがとうございます。 上記とても参考になりました、検証させていただきます。 IF関数。。も訂正しておきます、ありがとうございます。
guest

0

私も基本的には if else で書くと思いますが、
場合によっては switch を使う書き方も分かりやすい場合があります。

例えば、num が 1,3,5 の場合と、2,4,6,7 の場合で
表示を分けたい場合などは有用です。

Javascript

1$(function(){ 2 $(".diag_btn").click(function () { 3 var num = $('.check_btn img.on').length; 4 $('.anc00_03').css('display','none'); 5 $('.anc04_07').css('display','none'); 6 $('.anc08').css('display','none'); 7 8 switch (num) { 9 default: // default はどこに入れてもいいです。 10 case 0: 11 case 1: 12 case 2: 13 case 3: 14 $('.anc00_03').css('display','block'); 15 break; 16 case 4: 17 case 5: 18 case 6: 19 case 7: 20 $('.anc04_07').css('display','block'); 21 break; 22 case 8: 23 $('.anc08').css('display','block'); 24 break; 25 } 26 }); 27});

投稿2016/12/14 08:36

MEBITUS

総合スコア83

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shi_hope

2016/12/14 08:57

ご返信ありがとうございます。 switch文はまだ使ったことがなかったのでこちらとても参考になりました。 サンプルありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問