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

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

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

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

Q&A

解決済

1回答

362閲覧

[JS]タイプ別に分けられた数値を、比較し出力したいです。

beginner.tanaka

総合スコア23

JavaScript

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

0グッド

0クリップ

投稿2020/10/12 10:28

編集2020/10/12 12:05

前提・実現したいこと

チェックボックスでチェックされた数をタイプ別でカウントされるコードがあります。
このカウントされた数字をタイプ別で比較し、数が多い方を、出力させたいです。
ご教授のほどよろしくお願いします。

試したこと

カウントされた数字をpushメソッドで、配列にいれ、数字を比較できるかなと考えたのですがダメでした。
↓これですと、エラーが出ました。

function decision(count) { Math.max.apply(null, count); }

該当のソースコード

javascript

1function countCheckedCheckbox(elements, sumElement, logname) { 2 let count = 0; 3 for (let i = 0; i < elements.length; i++){ 4 if (elements[i].checked){ 5 count = count + 1; 6 } 7 } 8 9 console.log(`${logname}の合計は${count}です`); 10 11 var arr = new Array(); 12 arr.push(count) 13 decision(count) 14 sumElement.value = count; 15 16} 17 18function checkbox() { 19 20 const checksA = document.getElementsByClassName("checks_one"); 21 const checksB = document.getElementsByClassName("checks_two"); 22 const checksC = document.getElementsByClassName("checks_three"); 23 const checksD = document.getElementsByClassName("checks_four"); 24 25 26 const btn = document.getElementById("btn") 27 btn.addEventListener("click", () => { 28 29 const countSumA = document.getElementById("sum_one") 30 const countSumB = document.getElementById("sum_two") 31 const countSumC = document.getElementById("sum_three") 32 const countSumD = document.getElementById("sum_four") 33 34 35 countCheckedCheckbox(checksA, countSumA, "タイプA"); 36 countCheckedCheckbox(checksB, countSumB, "タイプB"); 37 countCheckedCheckbox(checksC, countSumC, "タイプC"); 38 countCheckedCheckbox(checksD, countSumD, "タイプD"); 39 40 }) 41} 42window.addEventListener("load",checkbox)

###追記

HTMLの記述になります。テキストフィールドにカウントされた値が入る形になります。

HTML

1 <div class="sum-btn"> 2 <button id="btn" type="button">診断する</button> 3 </div> 4 5 6 7 <div class="result"> 8 <span class="type_name">Aタイプ</span><input type="text", class="count_num", id="sum_one" >ポイントです! 9 </div> 10 <div class="result"> 11 <span class="type_name">Bタイプ</span><input type="text", class="count_num", id="sum_two" >ポイントです! 12 </div> 13 <div class="result"> 14 <span class="type_name">Cタイプ</span><input type="text", class="count_num", id="sum_three" >ポイントです! 15 </div> 16 <div class="result"> 17 <span class="type_name">Dタイプ</span><input type="text", class="count_num", id="sum_four" >ポイントです! 18 </div>

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

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

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

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

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

kuma_kuma_

2020/10/12 10:48

HTML部分の記載もお願いします。
yambejp

2020/10/12 12:03

タイプ別というのが意味がよくわかりませんが クラスごとにチェックされた数を比較して、最大値をとればいいのですか? その際一緒に任意の「タイプ」を表示? そうなるとチェック数が最多のものが複数ある場合どうするのでしょう?
beginner.tanaka

2020/10/12 12:09

kuma_kuma様 HTMLを追加で記述しました。よろしくお願いします。 yambejp様 チェックボックスは数十個あり、そのチェックされたボックスによって、 タイプAは3個チェックされている、タイプBは5つチェックされているというように、振り分けられ、それを比較し、あなたのタイプはタイプBです。 という結果を出力させいたです。 複数の場合は、あなたのタイプは、タイプBとCです!という形で、出力できればなと考えています。 よろしくお願いいたします。
yambejp

2020/10/12 12:10

HTMLの追記拝見しましたが 所定のクラス名がついたチェックボックスが見当たりません
guest

回答1

0

ベストアンサー

ざっくりとこんな感じで

投稿2020/10/12 12:20

編集2020/10/12 12:23
yambejp

総合スコア116724

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

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

beginner.tanaka

2020/10/12 13:01

ありがとうございます!解決しました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問