Documentドキュメント.getElementsByClassNameゲットエレメンツバイクラスネーム メソッド

本ページには広告が含まれています。

指定されたクラス名をすべて持つすべての子要素の配列風オブジェクトを返します。

指定したクラス名を一部に持つすべての要素を取得する場合は、Document.querySelectorAll メソッドを使います。

複数のクラス名を指定する場合は「 (半角スペース)」で区切ります。

構文
  1. HTMLCollection = Document.getElementsByClassName( names )
引数
names 省略可
一致させる一つ以上のクラス名を表すDOMString。複数指定する場合は半角スペースで区切ります。
戻り値
getElementsByClassName オブジェクト (DOM)

複数クラスの指定方法

getElementsByClassNameはクラス名を複数指定した場合は、すべてに一致する要素(AND検索)を取得します。

以下は、"className1"と"className2"の両方を含む要素を取得します。

UWSC
IE.document.getElementsByClassName("className1 className2")

いずれかに一致する要素(OR検索)するにはDocument.querySelectorAll メソッドを使います。querySelectorAllはCSSセレクタで指定するので「.className」の形式になります。

以下は、"className1"または"className2"のいずれかを含む要素を取得します。

UWSC
IE.document.querySelectorAll(".className1, .className2")

要素をクリック

指定したクラス名の要素をクリックするには以下のように記述します。

UWSC
DIM elements = IE.document.getElementsByClassName("namees")
elements.Item(0).click()

「Item(0)」は「0~elements.length-1」の範囲で適宜書き換えます。

クリックして開いた新しいタブを操作(InternetExplorer オブジェクトを取得)するには以下のように記述します。

UWSC
DIM tab = getIEObj(-1)

getIEObj関数 (自作関数)は自作関数です。

他の取得方法

Document.getElementById メソッド
idから取得
Document.getElementsByClassName メソッド
タグ名から取得

プログラム実行例

Googleでの検索結果を取得

UWSC
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://google.com")
BusyWait(IE)

IESETDATA(IE, INPUT("検索ワードを入力"), "q")
IESETDATA(IE, TRUE, "btnK")
BusyWait(IE)

DIM elements = IE.document.getElementsByClassName("rc")

FOR element IN elements
	PRINT element.getElementsByClassName("LC20lb").Item(0).textContent
	PRINT element.getElementsByClassName("s").Item(0).textContent
	PRINT "----------"
NEXT

IE.Quit
使用関数

歌ネットから歌詞を取得してテキストファイルに保存

UWSC
CONST ssfDesktop = 0

DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://www.uta-net.com/song/280568/")
BusyWait(IE)

DIM element, elements, name, lyrics

element = IE.document.getElementById("view_kashi")
elements = element.getElementsByClassName("title")
name = TRIM(elements.Item(0).innerText)

element = IE.document.getElementById("kashi_area")
lyrics = element.innerText

IE.Quit

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM path = Folder.Self.Path
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
path = uniqueFilename(FSO.BuildPath(path, name + ".txt"))

DIM FID = FOPEN(path, F_READ OR F_WRITE)
FPUT(FID, lyrics)
FCLOSE(FID)
使用関数

楽天PointClubでランクと保有ポイント数を取得する

UWSC
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://point.rakuten.co.jp/")
BusyWait(IE)

DIM elements

// ログインする
elements = IE.document.getElementsByClassName("name")

IFB elements.length = 0 THEN
	IELINK(IE, "ログイン")
	BusyWait(IE)
	IESETDATA(IE, READINI("楽天", "ID", "楽天.INI"), "u")		// ユーザID
	IESETDATA(IE, READINI("楽天", "PASS", "楽天.INI"), "p")		// パスワード
	IESETDATA(IE, TRUE, "submit")								// ログイン
	BusyWait(IE)
ENDIF

// ランク
elements = IE.document.getElementsByClassName("rank")
elements = elements.Item(0).getElementsByTagName("em")
PRINT elements.Item(0).innerText

// ポイント
elements = IE.document.getElementsByClassName("point-total")
elements = elements.Item(0).getElementsByTagName("dd")
PRINT elements.Item(0).innerText

IE.Quit
[syntaxHighlight language="HTML"]
あなたは ゴールド会員 です
総保有ポイント
559
[/syntaxHighlight] [syntaxHighlight language="INI" title="楽天.INI"][楽天] ID=info@example.com PASS=*** [/syntaxHighlight]
結果
プレーンテキスト
ゴールド会員
559
使用関数

関連記事

CPUUSERATE関数 (スクリプト関数)
GETDIR関数 (スクリプト関数)
GETFORMDATA関数 (スクリプト関数)
FSO.GetFolder メソッド
指定したパスのFolder オブジェクトを返します。
File.Type プロパティ (FSO)
指定したファイルの種類を返します。
small関数 (自作関数)
配列の中で小さい方から数えた順位の値を求めます。
GETCTLHND関数 (スクリプト関数)
ボタン等、オブジェクトのハンドルを取得します。
GETID関数 (スクリプト関数)
指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
POSACC関数 (スクリプト関数)
STATUS関数 (スクリプト関数)
ウィンドウの各種状態を取得します。タイトル・クラス名・X座標・Y座標・幅・高さなどを取得することができます。