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

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

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

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

Q&A

解決済

1回答

9046閲覧

テキストボックスに入力したリンク先を要素として追加したい。

JunpeiOmura

総合スコア8

JavaScript

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

0グッド

0クリップ

投稿2018/05/01 08:38

Javascriptを用いて、
テキストボックスに「リンク名」と「URL」を入力しボタンをクリックすると、
入力されたリンク名とリンク先URLが設定されたa要素を追加するプログラムを作成しようとしています。

現状のプログラムは以下のものです。

<!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>要素の作成・追加</title> <script> function add(){ //var name = name.get.getElementById('name'); //var URL = name.get.getElementById('url'); var div_element = document.createElement("div"); div_element.innerHTML = '<a href="リンク先のURL">リンクの追加</a>'; var parent_object = document.getElementById("piyo"); parent_object.appendChild(div_element); } </script> </head> <body> <tr> <td align="right"><b> 名前:</b></td> <td><input type="text" name="name" size="30" maxlength="20"></td> </tr> <tr> <td align="right"><b> URL:</b></td> <td><input type="text" name="url" size="30" maxlength="20"></td> </tr> <div> <button onclick="add();">追加</button> </div> <div id="piyo"> </div> </body> </html>

div_element.innerHTML = '<a href="リンク先のURL">リンクの追加</a>';でテキストボックスに入力した文字を持ってきたく、

var name = name.get.getElementById('name'); var URL = name.get.getElementById('url');

と宣言しているのですが、この2文のどちらか1文でも存在すると実行できなくなるのでコメントアウトしております。
なぜこの宣言があると実行できなくなるのかを教えていただきたいです。
宜しくお願いいたします。

ちなみにこちらのサイトを参考にしております
http://mitsuakikawamorita.com/blog/?p=254

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

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

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

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

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

m.ts10806

2018/05/01 08:57 編集

name.get.getElementById は何を参考に入れられたのでしょうか?(少し文章を修正しました)
m.ts10806

2018/05/01 08:59

ブラウザの開発ツールのコンソールをご確認ください。実行できなくなる原因がわかると思います。
guest

回答1

0

ベストアンサー

js

1var name = name.get.getElementById('name'); 2var URL = name.get.getElementById('url');

これでは値は取れません。getElementByIdはタグにつけたIDを探しますのでタグにIDをつけ、ほしいのはvalueの値なので以下のようになります。

js

1function add(){ 2 var name = document.getElementById('name').value; 3 var URL = document.getElementById('url').value; 4 var div_element = document.createElement("div"); 5 div_element.innerHTML = '<a href="'+URL+'">'+name+'</a>'; 6 var parent_object = document.getElementById("piyo"); 7 parent_object.appendChild(div_element); 8}

html

1<table> 2 <tr> 3 <td align="right"><b> 名前:</b></td> 4 <td><input id="name" type="text" name="name" size="30" maxlength="20"></td> 5 </tr> 6 7 <tr> 8 <td align="right"><b> URL:</b></td> 9 <td><input id="url" type="text" name="url" size="30" maxlength="20"></td> 10 </tr> 11</table> 12<div> 13 <button onclick="add();">追加</button> 14</div> 15 16<div id="piyo"> 17</div>

↓で実際に確認できます。
codepen

投稿2018/05/01 09:03

編集2018/05/01 12:23
Atsushi_Okumura

総合スコア355

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

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

JunpeiOmura

2018/05/01 09:52

ご回答ありがとうございます。 参考にしてJavScriptを変えて見たのですが、同じく宣言の2文があると実行されません。 以下のようにJavaScriptを変更しました。 ``` <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>要素の作成・追加</title> <script> function add(){ var name = document.getElementByld('name').value; var URL = document.getElementByld('url').value; var div_element = document.createElement("div"); div_element.innerHTML = '<a href="'+URL+'">+name+</a>'; var parent_object = document.getElementById("piyo"); parent_object.appendChild(div_element); } </script> </head> <body> <tr> <td align="right"><b> 名前:</b></td> <td><input type="text" name="name" size="30" maxlength="20"></td> </tr> <tr> <td align="right"><b> URL:</b></td> <td><input type="text" name="url" size="30" maxlength="20"></td> </tr> <div> <button onclick="add();">追加</button> </div> <div id="piyo"> </div> </body> </html> ```
Atsushi_Okumura

2018/05/01 10:01

HTMLのinputタグにid="name"、id="url"が付いていないようです
JunpeiOmura

2018/05/01 11:47

なるほど、ありがとうございます! ちなみに、HTMLを以下のように変更しても実行されません... <body> <tr> <td align="right"><b> 名前:</b></td> <td><input type="text" name="name" id="name" size="30" maxlength="20"></td> </tr> <tr> <td align="right"><b> URL:</b></td> <td><input type="text" name="url" id="url" size="30" maxlength="20"></td> </tr> <div> <button onclick="add();">追加</button> </div> <div id="piyo"> </div> </body>
Atsushi_Okumura

2018/05/01 12:27

javascriptにも提示したコードと違う箇所があるようです。 一度しっかりと確認してみてください。 (丸ごとコピペしたら動くと思います)
JunpeiOmura

2018/05/02 07:50

解決しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問