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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

4回答

222閲覧

JavascriptをHtmlに変換する

vivivi

総合スコア15

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2018/08/27 07:05

前提・実現したいこと

getElementsByTagName,getElementById,getElementsByClassNameを使ってhtml表示を変更したいです。

発生している問題・エラーメッセージ

クリックしたとき一つ目のgetElementsByTagNameしか変更されません。

### 該当のソースコード <html> <head> <meta charset="utf-8"> <meta robot="noindex"> </head> <body> <div class="wrap"> <div class="div"> <p class="div">aa株式会社</p> </div> <span id="corp">株式会社aa</span> <div class="class"></div> <button type="button" onclick="clicker();">ボタンを押すと?</button> </div> <script> function clicker(){ var changeName = document.getElementsByTagName('p'); changeName[0].innerHTML = "aa株式会社は"; var changeId = document.getElementById('corp').value; changeId[0].innerHTML = "OO事業を"; var changeClass = document.activeElementByClassName('class'); changeClass[0].innerHTML = "運営しています"; } </script> </body> </html> ```ここに言語名を入力 html,Javascript

試したこと

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

m.ts10806

2018/08/27 07:07

このタイトルではあらぬ誤解を与える(要件が読めない)ためもう少し質問内容によせたタイトルに修正してください。
m.ts10806

2018/08/27 07:08

また、コードブロック内にはコードのみを入れてください。それ以外のものがあると再現確認の際に邪魔となります。
guest

回答4

0

使い分けについてはすでに良い回答がでているので別の考えとして
querySelectorで処理する例

javascript

1document.querySelector('p').textContent= "xxx"; 2document.querySelector('#corp').textContent= "yyy"; 3document.querySelector('.class').textContent= "zzz"; 4

投稿2018/08/27 07:35

yambejp

総合スコア114769

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

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

0

スクリプトにちょこちょこ間違いがあったので

javascript

1 function clicker(){ 2 var changeName = document.getElementsByTagName('p'); 3 changeName[0].innerHTML = "aa株式会社は"; 4 var changeId = document.getElementById('corp'); 5 changeId.innerHTML = "OO事業を"; 6 var changeClass = document.getElementsByClassName('class'); 7 changeClass[0].innerHTML = "運営しています"; 8 }

に変更してみてください。

投稿2018/08/27 07:13

yukihisa

総合スコア672

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

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

yukihisa

2018/08/27 07:15

あぁ、回答が完全に丸被りした。。。 mts10806 様のほうが詳しく書いているのでそちらを見てください。
m.ts10806

2018/08/27 07:20

投稿日時まで丸かぶりですねw
yukihisa

2018/08/27 07:22

えぇ、おそらく数秒差ですねw 編集中に確認しながら回答したつもりでしたが、さすがにここまで丸被りだとどうしようもないorz
guest

0

ベストアンサー

.valueは基本的にはinputタグのvalueを取得する際に使用されます。
例えばdivタグの中にあるテキストを取得したい場合には利用できません。
今回の場合、別に内部のテキスト置換とかしないので、エレメントそのもので良いのでは。
.activeElementByClassName なんてありましたっけ?
見た感じgetElementsByClassNameで良さそうです。

を踏まえたうえで、やりたいことを実現したっぽいコード↓

js

1 function clicker(){ 2 var changeName = document.getElementsByTagName('p'); 3 changeName[0].innerHTML = "aa株式会社は"; 4 var changeId = document.getElementById('corp'); 5 changeId.innerHTML = "OO事業を"; 6 var changeClass = document.getElementsByClassName('class'); 7 changeClass[0].innerHTML = "運営しています"; 8 } 9

投稿2018/08/27 07:13

編集2018/08/27 08:21
m.ts10806

総合スコア80850

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

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

m.ts10806

2018/08/27 07:44 編集

可能で結構なので今回の低評価の理由を教えていただきたく。 絶対的な自信があるというわけではなく、後学のため。 もし書き方云々というのでしたら気をつけますし、情報が不足しているというのでしたら追記しますし、間違っている情報がありましたら修正します。
x_x

2018/08/27 08:14

低評価はわたしではありませんが、valueプロパティはinput以外にもあるので決めつけるのはいかがなものかと。
m.ts10806

2018/08/27 08:22

ご指摘ありがとうございます。「基本的には」と付け足したつもりでしたが、つもりだけになってました。 今回は使えないという形で書き直してみました。
guest

0

getElementByIdは単数形であるように、1個しか帰ってこないので[0]による取り出しは不要です。[0]undefinedとなるために、そのあとがエラーとなっているものと思われます。

投稿2018/08/27 07:09

maisumakun

総合スコア145183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問