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

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

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

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

Q&A

解決済

2回答

3537閲覧

プログラミング(JS)研修の課題について教えてください!

takatatakashi

総合スコア8

JavaScript

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

0グッド

0クリップ

投稿2014/10/28 03:45

JavaScriptの研修を受けている初心者です。
そこで出された課題がよくわからないのでぜひご教示いただきたく。

課題は以下の通りです。
「テキストボックスに「リンク名」と「URL」を入力しボタンをクリックすると、入力されたリンク名とリンク先URLが設定されたa要素を追加するプログラムを作成してください。」
![イメージ説明]WIDTH:600

Formに入力したテキストをどう処理すればよいのかわからず以下のようにコードを書いてみました。
全然違うような気がしますが、何がどう違うのかがわからず、困っています。

ビジなーレベルのスキルでどう直すべきか、ご教示いただけますと、大変大変助かります。

lang

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>8章課題</title> 6 <script> 7 function merge() { 8 var link_name= document.getElementById('link_name'); 9 var input_url= document.getElementById('input_url'); 10 var element_a = document.createElement('a'); 11 element_a.innerHTML = '<a href="'+input_url+'">'+link_name+'</a>'; 12 output.appendChild(element_a); 13 } 14 15 window.onload = function() { 16 var go = document.getElementById('go'); 17 go.addEventListener('click', merge, false); 18 } 19 </script> 20</head> 21 22<body> 23 <form name="input_form"> 24 <label for="link_name">リンク名: </label> 25 <input type="text" name="link_name" id="link_name" size="20" maxlength="30"> 26 <label for="input_url">URL: </label> 27 <input type="text" name="input_url" id="input_url" size="30" maxlength="30"> 28 <button id="go">リンク追加</button> 29 <div id="output"></div> 30 </form> 31</body> 32</html> 33

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

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

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

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

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

guest

回答2

0

ベストアンサー

断片的に回答します。

link_nameinput_urlの内容はgetElementByIdからvalueを参照する必要があります。

JavaScriptだけで処理する前提であれば、formのsubmitかactionを潰すか、formを使わないようにする必要があります。(submitが実行されるとリロードされて元に戻ってしまいます。)

outputgetElementByIdで取得する必要があります。

a要素のinnerHTMLはリンク名の部分です。リンク自体はoutputinnerHTMLa要素自体を入れるか、a要素にsetAttributeなどをする必要があります。

投稿2014/10/28 04:53

TaMaMhyu

総合スコア1356

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

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

takatatakashi

2014/10/28 12:57

ありがとうございます!おかげさまで無事解決しました。
guest

0

TaMaMhyu さんの提案でうまくいくと思います。

デバッグについてです。
最近のブラウザにはすべて「開発ツール」というのがついています。
その中にJavaScriptを直接入力できる欄(JavaScriptコンソール)があるので、
例えば「document.getElementById('link_name')」と入力して結果を見てみるのがよいでしょう。

JSのデバッグは基本的に HTMLを編集してリロードするのではなく、JSコンソールに入力して試してみたほうがよいです。

投稿2014/10/28 12:23

hello-world

総合スコア1342

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

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

takatatakashi

2014/10/28 12:58

ありがとうございます。そんなツールがあるのですね。HTMLを勉強した際にデベロッパーツールを知りましたが、JSにもあるのですね。親切にご教示いただき、感謝します。
TaMaMhyu

2014/10/29 02:00

そのデベロッパーツールの中にJavaScriptデバッガのたぐいが入っていると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問