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

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

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

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

JavaScript

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

HTML

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

Q&A

解決済

3回答

1116閲覧

DOM要素について(取得の仕方による違い)

justmeet0924

総合スコア44

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2021/12/06 04:29

html

1<html> 2 <body> 3 <input type="button" value="botton" id="button"> 4 <p></p> 5 </body> 6 <script src="script.js"></script> 7</html>

javascript

1let button = document.getElementById("button"); 2let p = document.getElementsByTagName("p"); 3let botton_2 = document.getElementsByTagName("input"); 4console.log(p); 5console.log(button); 6console.log(button.value); 7console.log(botton_2);

DOM要素をjavascript側で取得するのには様々な方法があります。
ここではgetElementById()メソッドと、getElementByTagName()メソッドを考えます。
この2つで取得したときの様子がjavascript側では全く異なります。
つまり、上のコードにおけるinput要素を、前者で取得した際、コンソールにおける表示を見てみると、htmlタグが表示されるだけです。
<input type="button" value="botton" id="button">
ところが、後者で取得すると、HTML Collection [input#button, button: input#button]と表示され、プロパティがずらずらっと表示されます。
後者の方が、より、javascriptオブジェクトとして取得できている感じがします。
この2つの取得の仕方の違いについて何かご存知の方はいらっしゃいますか??

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

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

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

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

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

guest

回答3

0

前提が違います
botton_2はHTMLCollectionですから要素の集合体です
実際にHTML要素を参照するときにはbutton_2[0]を利用します
つまりbotton_2[0]==buttonです

ちなみにDOMの掴み方はHTMLCollectionとNodeListがあり
前者は参照時点の集合、後者は関数を呼び出した時点の集合となります

javascript

1<div>1</div> 2<script> 3const d1=document.getElementsByTagName('div'); 4const d2=document.querySelectorAll('div'); 5</script> 6<div>2</div> 7<script> 8console.dir(d1); 9console.dir(d2); 10</script>

投稿2021/12/06 04:36

編集2021/12/06 04:49
yambejp

総合スコア116724

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

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

0

この2つの取得の仕方の違いについて何かご存知の方はいらっしゃいますか??

突き詰めて考えても仕方ありません(し、役に立つとは考えづらいです)。

consoleはデバッグ用の機能であり、何をどのように表示するかは実装依存です(WHATWG)。

投稿2021/12/06 04:36

maisumakun

総合スコア146018

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

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

0

ベストアンサー

本文中で、getElementsByTagNameのことをgetElementByTagNameと誤記していることからして、認識がおかしい気がします。

getElementByIdは、エレメント(HTMLタグ、element)を返すのに対して、getElementsByTagNameは複数形になっていることからわかるように、エレメントの配列相当(HTMLCollection)を返します。

console.log(botton_2[0]);と、HTMLCollectionの中の1つのelementを取り出せば、
console.log(button);と同じものが表示されます。

投稿2021/12/06 06:46

otn

総合スコア85901

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問