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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

3回答

904閲覧

JavascriptでHTMLの要素をブラウザで表示

despaine198

総合スコア7

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/06/05 15:55

javascriptでHTMLの要素をブラウザに表示する方法を考えています。
例えば<p>というタグがHTMLに存在したらそれをブラウザでpという文字だけ表示させるといったことを行いたいです。
調べてきた中でdocument.getElementsByTagName("p")を使えば<p></p>を使えば中身を編集することができる方法はよく見受けることができましたが、要素そのものを表示させるといったものは見つけられなく困っています。参考になるサイトとかあったら些細なものでもいいのでよろしくおねがいします。

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

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

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

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

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

hoshi-takanori

2021/06/05 18:22

何がしたいのかよく分かりませんが、こういうことでしょうか? var ps = document.querySelectorAll('p'); for (var p of ps) { p.innerText = 'p'; }
hope_mucci

2021/06/05 18:45

このように回答者側に「本当にやりたいこと」が伝わっていないので、伝わるように説明をお願いしたところです。
maisumakun

2021/06/06 01:35

具体例として、「入力となるHTML」と「それをどこへどのような形で出力するか」を提示していただけないでしょうか?
despaine198

2021/06/06 02:37

HTMLの要素をブラウザにテキストとして表示するだけです。 HTMLファイルに<p>というタグが存在したらそれをブラウザにテキストとしてpだけ表示するだけです。
maisumakun

2021/06/06 02:41

> ブラウザにテキストとしてpだけ表示するだけです。 ・同じブラウザ内ですか?別タブですか? ・出力先はブラウザの「どこ」ですか?(console.logなら何も考えなくていいのですが、HTML内に出力するとなると「出力先の要素」をどこにするのか、そしてそれ自体は表示対象に含むのか、など複雑な問題が生じます)
despaine198

2021/06/06 02:44

同じブラウザ内です。document.write()で表示できなくて困ってます。 今はとりあえずブラウザのどこでもいいです。
despaine198

2021/06/06 02:45

ページに表示させれば今はそれでいいです。
guest

回答3

0

全てのHTMLElementはchildrenプロパティを持っていて、自分の子要素を全て参照できます。
bodyからchildrenプロパティの中身を追っていけば全ての要素を追いかけることができます。

例えば、このページの現在のbodyからの子要素を以下のように取得できます。

javascript

1 document.body.children

結果:

HTMLCollection(78) [script#teratail-datalayer-variables, script, noscript, script, header#header.l-header.j-questionDetailMoveToReplySubtract, div#shortNotification.L-shortNotifications, div.row-fluid, div#container.l-container.l-container--qaDetail.clearfix, footer#footer, script, script, script, script, div.C-simpleModalBackground.j-simpleModalWrapper, div#divReport, script, script, script, div.C-simpleModalBackground.j-simpleModalWrapper, script, script, img, script, script, script, div, script, script, iframe, iframe, script, script, script, script, img, iframe, iframe#google_osd_static_frame_9841291665357, script, script, script, iframe, script, img.imPageviewImgBcn, iframe, iframe, div#fb-root.fb_reset, script, noscript, img, img, div, script, script, script, script, iframe, script, script, div, div, script, div, script, div, div, div, script, img, script, script, img, img, img, script, img.imPageviewImgBcnV2, script, div, script, teratail-datalayer-variables: script#teratail-datalayer-variables, header: header#header.l-header.j-questionDetailMoveToReplySubtract, shortNotification: div#shortNotification.L-shortNotifications, container: div#container.l-container.l-container--qaDetail.clearfix, footer: footer#footer, …](長いので省略)

このHTMLCollectionの中身を順番に取得し、さらにchildrenで子要素を探索することで全ての要素そのものが取得可能です。

要素中の何が取得できるかはドキュメントを参照していただければ。
https://developer.mozilla.org/ja/docs/Web/API/Element

投稿2021/06/05 16:14

hope_mucci

総合スコア4447

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

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

despaine198

2021/06/05 16:42

ありがとうございます。 もう一つ質問でそれを任意のHTMLのブラウザにその取得した要素を表示するにはどうしたらいいのでしょうか?できれば簡単な例を出してくださると助かります。
hope_mucci

2021/06/05 18:38

本文もコメントでの発言もそうですが、質問文から本当にやりたいことが伝わって来ません。説明不足です。 「任意のHTMLのブラウザ」って何でしょうか。また、「期待している状態」も質問文から読み取ることができません。 自力で試したコードも書かれていないのでどの程度試行錯誤したのかも分かりません。簡単な例を出せと書かれていますが「期待している状態」が分からないので適切なサンプルも出せません。 ・目指している動作、状態、結果を分かりやすく説明すること ・自身で書いたコード くらいは最低限提示しましょう。
despaine198

2021/06/06 00:19

あなたの説明では探索しかできていないんです。(出力できていないので探索できているかわからないですが) したいことは、その探索したものを読み込んだHTMLをブラウザに表示するといった操作です。自分が試したのはdocument.write();では表示できなかったので他の方法を教えてもらえないでしょうか?
hope_mucci

2021/06/06 00:46

試行したコードがあるのであれば質問本文に追記しましょう。 繰り返しますが、「探索したものを読み込んだHTMLをブラウザに表示するといった操作」という説明では、「期待している状態」がわかりません。質問の追記、補足要求コメントは読まれましたか。コードを書かれている方がいらっしゃいますが、そのコードがあなたの期待する状態を再現できるのでしょうか。 違うのであれば、あなたが求めているゴールの状態がこの質問を見ている人に伝わっていないのです。 説明は何も言葉だけでやらなければいけないわけではありません。図を作って「このような状態にしたい」と説明しても良いのです。文章で説明が難しいのであれば図解で説明しましょう。
despaine198

2021/06/06 01:21

だから、要素をブラウザに表示するだけです。 あなたが考えているよりはるかにすることはシンプルです。 これごときに図などいらないです。 要素の文字を表示させるだけです。
guest

0

HTMLファイルに<p>というタグが存在したらそれをブラウザにテキストとしてpだけ表示するだけ
document.write()で表示できなくて困ってます

こんな感じですか。

html

1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5</head> 6 7<body> 8 <p></p> 9 <script> 10 document.write(document.getElementsByTagName('p')[0].tagName) 11 </script> 12</body> 13 14</html>

投稿2021/06/09 05:29

Lhankor_Mhy

総合スコア36960

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

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

0

Element.outerHTMLで取得できます。これを出力すれば良いです。

html

1<p id="test">あああ</p> 2<script> 3var content = document.getElementById("test").outerHTML; 4console.log(content); // <p id="test">あああ</p> 5</script>

投稿2021/06/06 01:07

編集2021/06/06 01:11
takna

総合スコア784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問