プログラミング(JS)研修の課題について教えてください!
解決済
回答 2
投稿 ・編集
- 評価
- クリップ 0
- VIEW 2,669
そこで出された課題がよくわからないのでぜひご教示いただきたく。
課題は以下の通りです。
「テキストボックスに「リンク名」と「URL」を入力しボタンをクリックすると、入力されたリンク名とリンク先URLが設定されたa要素を追加するプログラムを作成してください。」

Formに入力したテキストをどう処理すればよいのかわからず以下のようにコードを書いてみました。
全然違うような気がしますが、何がどう違うのかがわからず、困っています。
ビジなーレベルのスキルでどう直すべきか、ご教示いただけますと、大変大変助かります。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>8章課題</title>
<script>
function merge() {
var link_name= document.getElementById('link_name');
var input_url= document.getElementById('input_url');
var element_a = document.createElement('a');
element_a.innerHTML = '<a href="'+input_url+'">'+link_name+'</a>';
output.appendChild(element_a);
}
window.onload = function() {
var go = document.getElementById('go');
go.addEventListener('click', merge, false);
}
</script>
</head>
<body>
<form name="input_form">
<label for="link_name">リンク名: </label>
<input type="text" name="link_name" id="link_name" size="20" maxlength="30">
<label for="input_url">URL: </label>
<input type="text" name="input_url" id="input_url" size="30" maxlength="30">
<button id="go">リンク追加</button>
<div id="output"></div>
</form>
</body>
</html>
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+3
link_name
、input_url
の内容はgetElementById
からvalue
を参照する必要があります。
JavaScriptだけで処理する前提であれば、formのsubmitかactionを潰すか、formを使わないようにする必要があります。(submitが実行されるとリロードされて元に戻ってしまいます。)
output
はgetElementById
で取得する必要があります。
a
要素のinnerHTML
はリンク名の部分です。リンク自体はoutput
のinnerHTML
にa
要素自体を入れるか、a
要素にsetAttribute
などをする必要があります。投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
デバッグについてです。
最近のブラウザにはすべて「開発ツール」というのがついています。
その中にJavaScriptを直接入力できる欄(JavaScriptコンソール)があるので、
例えば「document.getElementById('link_name')」と入力して結果を見てみるのがよいでしょう。
JSのデバッグは基本的に HTMLを編集してリロードするのではなく、JSコンソールに入力して試してみたほうがよいです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2014/10/28 21:57