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

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

ただいまの
回答率

88.77%

関連付けのさせ方が分かりません。

解決済

回答 4

投稿 編集

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

asako1010

score 50

課題のリンク→ 課題

[課題の要件]
・追加ボタン押下時にタスクを登録できる
・タスクには、「ID、コメント、状態」が含まれる
・IDは連番にする
・コメントはフォームで入力された値が表示される
・状態には、「作業中」と表示される
・削除ボタンが表示されている(ここでは押下時の動作はつけなくてよい)
上記の課題を作っている最中です。

現在の状態は以下の画像の通りです。
イメージ説明

課題のとおり、IDの列に「数字」を、コメントの列に「フォームに入力された文字」、状態の列に「作業中と状態」を並べたいです。
「ID コメント 状態」と「連番ID フォームに入力された文字 作業中 削除」を関連させる方法が検索しても分かりませんでした。
言語化できないというか、Googleで検索にそもそもなんと検索すればいいのかも分からない状態です。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ToDoリスト</title>
<link rel="stylesheet" href="css/styles.css">

</head>
<body>
<h1>ToDoリスト</h1>

<div class="radiobutton">
    <input type="radio" id="button-1" name="radio1" value="1" checked />
    <label for="button-1">すべて</label>
    <input type="radio" id="button-2" name="radio1" value="2" />
    <label for="button-2">完了中</label>
    <input type="radio" id="button-3" name="radio1" value="3" />
    <label for="button-3">作業中</label>


    <h3 id="id_h3">ID コメント 状態</h3>
    <div id="todo"></div>
    <h2>新規タスクの増加</h2>

    <p id = id_p>
        <input type="text" id="id_text" value=""> 
        <button id="btn" type="btn" class="button"> 追加</button>
    </p>
    </div>

    <script>
    let id = 0;
    const btn = document.getElementById('btn');
    btn.addEventListener('click', () => { 

      const idEl = document.createElement("span");
      idEl.textContent = id;
      const comment = document.getElementById("id_text").value;
      const commentEl = document.createElement("span");
      commentEl.textContent = (comment);

      const btn1El = document.createElement("button");
      btn1El.textContent = "作業中";
      const btn2El = document.createElement("button");
      btn2El.textContent = "削除";

      const divEl = document.createElement("div");
      divEl.appendChild(idEl);
      divEl.appendChild(commentEl);
      divEl.appendChild(btn1El);
      divEl.appendChild(btn2El);      

      const todoEl = document.getElementById("todo");
      todoEl.appendChild(divEl);
      id++;
    }, false);

  </script>
</body>
</html>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • Takumiboo

    2019/12/01 17:37

    > H40831さん
    おそらく、レイアウトの話だと思います。列が揃っていないということを言いたいのではないかと。

    キャンセル

  • asako1010

    2019/12/01 21:09

    質問文を編集致しました。
    > H40831さん
    JavaScriptのデータと、Htmlに反映した要素を関連付けする方法が分かりません。

    キャンセル

  • asako1010

    2019/12/01 21:10

    > Takumiboo
    そうです。レイアウトの話です。
    質問文を編集致しました。

    キャンセル

回答 4

+3

「連番ID フォームに入力された文字 作業中 削除」と検索したのだとすれば、筋の悪いキーワード選定です。他のたくさんの人があなたと同じ課題を解いているならそのキーワードでも出る可能性がありますが、普通は出ません。

2回目な気もしますが、入門書を買いましょう。HTML/CSSの入門書と、JavaScriptの入門書は買いましょう。
データをどうページ内で保持するかや、それをどうHTMLで表現するかの基礎的なことが抑えられる様な入門書を探してください。

次の質問は「削除」でその次が「配列」でその次が「保存」で、と一つずつ「ぐぐり方がわかりません」と質問することになりますよ。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/12/02 13:55

    質問への追記依頼でレイアウトの話だとのことなので、「削除」「配列」「保存」は今回は関係無さそうです。

    キャンセル

  • 2019/12/02 13:58

    To: Takumiboo さん
    「次の質問は」と書いています。過去の質問を踏まえてそういう流れになりそう、という回答です。

    キャンセル

  • 2019/12/02 22:31

    >kei344さん
    書籍注文しました。
    アドバイスありがとうございます。

    キャンセル

checkベストアンサー

+2

HTMLで<table>を用いて表として作っていく、もしくはCSSでdisplay:tableを使うのはどうでしょうか。

<table>-HTML5タグリファレンス
display: tableの活用

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/12/02 22:45

    >Takumibooさん
    ありがとうございます。
    table使って、コード編集し直します。

    キャンセル

0

JavaScriptのデータと、Htmlに反映した要素を関連付けする方法が分かりません。

との事なので、希望のデータを見た目に反映させること自体は出来ているという前提で解答します。

JavaScriptでデータ化するとき、他と被らない番号のデータも一緒に持たせておいて、
HTMLのdata属性にその値を割りふるといいと思います。
ボタンを押したときは、そのdata属性の値を取得することで、JavaScriptのほうで一致するデータを探して処理をすることができます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/12/02 22:30

    ありがとうございます。
    コード編集し直します。

    キャンセル

0

IDは連番にする

と「削除」の親和性が悪いのでidは諦めたほうがよいです

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/12/02 13:54

    削除ボタンの動作は不要とのことです

    キャンセル

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

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

関連した質問

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