0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

classやタグで取得したデータにgetElementsが使えない件

Posted at

はじめに

今回の問題は

let element = document.getElementsByClassName('profile-content');

このようにクラス属性で取得したデータの中から、spanタグの箇所のみを入手しようとして

let element = document.getElementsByClassName('profile-content');//さっきのコード
let profilespan = element.getElementsByTagName('span');

と書いたところ、下のelement.getElementsByTagNameがnot a function(関数じゃない)と怒られたことです。
原因としてはおそらく、上のクラスで取得したデータ型がHTMLCollectionであり、それに対してgetElementsメソッドが利用できないためです。どうすればよいかというと

let element = document.getElementById('id名');//elements(複数形)じゃないよ
let profilespan = element.getElementsByTagName('span');

とするのが正しいようです。クラスではなくidで取得しようとのことでした。
なんだか不便な気もしますが、これで一応解決です。どなたかの助けになれば幸いです。

まとめ

idで取得する getElementById => Elementオブジェクトで取得取得

タグで取得する getElementsByTagName => HTMLCollectionオブジェクトで取得

クラスで取得する getElementsByClassName => HTMLCollectionオブジェクトで取得

.elementsメソッドは上記のうちElementオブジェクトにのみ適用可能。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?