🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

Q&A

解決済

4回答

1367閲覧

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

asako1010

総合スコア50

JavaScript

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

0グッド

0クリップ

投稿2019/12/01 07:53

編集2019/12/01 12:04

課題のリンク→ 課題

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

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

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

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6<meta http-equiv="X-UA-Compatible" content="IE=edge"> 7<title>ToDoリスト</title> 8<link rel="stylesheet" href="css/styles.css"> 9 10</head> 11<body> 12<h1>ToDoリスト</h1> 13 14<div class="radiobutton"> 15 <input type="radio" id="button-1" name="radio1" value="1" checked /> 16 <label for="button-1">すべて</label> 17 <input type="radio" id="button-2" name="radio1" value="2" /> 18 <label for="button-2">完了中</label> 19 <input type="radio" id="button-3" name="radio1" value="3" /> 20 <label for="button-3">作業中</label> 21 22 23 <h3 id="id_h3">ID コメント 状態</h3> 24 <div id="todo"></div> 25 <h2>新規タスクの増加</h2> 26 27 <p id = id_p> 28 <input type="text" id="id_text" value=""> 29 <button id="btn" type="btn" class="button"> 追加</button> 30 </p> 31 </div> 32 33 <script> 34 let id = 0; 35 const btn = document.getElementById('btn'); 36 btn.addEventListener('click', () => { 37 38 const idEl = document.createElement("span"); 39 idEl.textContent = id; 40 const comment = document.getElementById("id_text").value; 41 const commentEl = document.createElement("span"); 42 commentEl.textContent = (comment); 43 44 const btn1El = document.createElement("button"); 45 btn1El.textContent = "作業中"; 46 const btn2El = document.createElement("button"); 47 btn2El.textContent = "削除"; 48 49 const divEl = document.createElement("div"); 50 divEl.appendChild(idEl); 51 divEl.appendChild(commentEl); 52 divEl.appendChild(btn1El); 53 divEl.appendChild(btn2El); 54 55 const todoEl = document.getElementById("todo"); 56 todoEl.appendChild(divEl); 57 id++; 58 }, false); 59 60 </script> 61</body> 62</html>

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

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

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

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

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

H40831

2019/12/01 08:12

どのレベルで分からないですか? ・JavaScriptでフォームの文字を取得する方法 ・JavaScriptのデータをHtmlに反映させる方法 ・JavaScriptのデータと、Htmlに反映した要素を関連付けする方法 上記のどこかの具体的な方法がわからないのでしょうか? それとも、上記の流れ自体がわからなかったということでしょうか?
Takumiboo

2019/12/01 08:36

関連の質問全てですが、「課題」をスクリーンショットで示されてもわからないのです。 どこかのサイトなのかテキストなのか分かりませんが、どういうアプリケーションを作る課題なのかを、要件定義等も含めて文字化する必要があります。
Takumiboo

2019/12/01 08:37

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

2019/12/01 12:09

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

2019/12/01 12:10

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

回答4

0

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

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

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

投稿2019/12/01 13:27

kei344

総合スコア69596

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

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

Takumiboo

2019/12/02 04:55

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

2019/12/02 04:58

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

2019/12/02 13:31

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

0

ベストアンサー

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

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

投稿2019/12/01 12:26

Takumiboo

総合スコア2536

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

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

asako1010

2019/12/02 13:45

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

0

IDは連番にする

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

投稿2019/12/02 01:20

yambejp

総合スコア116690

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

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

Takumiboo

2019/12/02 04:54

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

0

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

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

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

投稿2019/12/01 22:48

H40831

総合スコア975

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

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

asako1010

2019/12/02 13:30

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問