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

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

ただいまの
回答率

87.48%

javascriptで作ったプログラムは入力情報を取得できますか?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 892

score 18

前提・実現したいこと

JavaScriptを使ったプログラム
liの入力情報をそれぞれの項目で取得できるか?
このプログラムで考える場合に気を付ける点はどこになるでしょうか?

該当のソースコード

      <div class ="container2">
        <p id="question"></p>
      <ul id="choices"></ul>
      <div id="btn" class="disabled">Next</div>
    </div>
'use strict';

{
  const question = document.getElementById('question'); 
  const btn = document.getElementById('btn'); 
  const choices = document.getElementById('choices'); 

  const quizSet = [
    {q: 'What is A?', c: ['あてはまる', 'どちらかというとあてはまる', 'どちらかというとあてはまらない','あてはまらない']},
    {q: 'What is B?', c: ['あてはまる', 'どちらかというとあてはまる', 'どちらかというとあてはまらない','あてはまらない']},
    {q: 'What is C?', c: ['あてはまる', 'どちらかというとあてはまる', 'どちらかというとあてはまらない','あてはまらない']},
  ];
  let currentNum = 0;
  let isAnswered;

  function checkAnswer(li) {
    if(isAnswered){ 
      var targetElements = document.getElementsByClassName('correct');
         [].forEach.call(targetElements, function(elem) {
        elem.classList.remove('correct');
    })
    }
      isAnswered = true;
      li.classList.add('correct');
      btn.classList.remove('disabled');
  }

  function setQuiz() {
    isAnswered = false;

    question.textContent = quizSet[currentNum].q;
    while (choices.firstChild) {
      choices.removeChild(choices.firstChild);
    }

    quizSet[currentNum].c.forEach(choice =>{ 
      const li = document.createElement('li');
      li.textContent = choice;
      li.addEventListener('click', () => {
        checkAnswer(li);
      });
      choices.appendChild(li);
    });

       if (currentNum === quizSet.length - 1) {
      btn.textContent = '診断結果';
    }
  }

  setQuiz();

  btn.addEventListener('click', () => {
    if(btn.classList.contains('disabled')){
      return;
    }
    btn.classList.add('disabled');

if(currentNum === quizSet.length - 1){

}else {
  currentNum++;
  setQuiz();
}
  });
}

試したこと

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/06/20 09:20

    >JavaScriptを使ったプログラム
    要件が何もありません。
    プログラミングの本質は問題解決です。
    要件や仕様があって、はじめて1つのものが出来上がります。
    要件や仕様を何も提示していないのに「このプログラムで考える場合に」とだけ書かれても
    「そのプログラムって何よ?」という疑問しか出ないので、あなたが欲しいアドバイスは得られないでしょう。

    質問テンプレートを利用して再編してください。

    キャンセル

  • 退会済みユーザー

    2019/06/20 10:29

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 2

+3

liの入力情報をそれぞれの項目で取得できるか?

当たり前ですが勉強すればできます
勉強しなければできないです。

このプログラムで考える場合に気を付ける点はどこになるでしょうか?

前回の質問でも書きましたが
コードをコピペして自身で少し変更した程度でメソッドなどをよく理解できていないようなので
もっと勉強したほうが良いです。
https://teratail.com/questions/195467

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

liの入力情報をそれぞれの項目で取得できるか?

できます。

このプログラムで考える場合に気を付ける点はどこになるでしょうか?  

プログラムは「書かれたとおり」にしか動かないので、強いて言えば「全部」です。誤字一つあってもバグになり得ますので。
1行1行、ちゃんと自分が「やろうとしていること」を理解して、正確にコードとして表現できているのか気をつける必要があります。

その上で、「このプログラム」の主たる目的が何かが明らかなら、「その目的達成のために必要十分なロジックを書けているか」が「気をつける点」ですが、それはプログラマ本人が把握しているはずです。(じゃないと作れない)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る