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

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

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

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

Q&A

解決済

1回答

1522閲覧

Cannot read properties of undefined (reading 'getElementsByTagName')

EOU818

総合スコア45

JavaScript

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

0グッド

0クリップ

投稿2022/11/14 14:02

前提

下記のコードをprintしたら、普通にprintできます。(ERROR無し)

AAA = document.getElementsByClassName("col_ID")[0].getElementsByTagName('input')[0].value console.log(Number(AAA)); BBB = document.getElementsByClassName("col_ID")[1].getElementsByTagName('input')[0].value console.log(Number(BBB)); CCC = document.getElementsByClassName("col_ID")[2].getElementsByTagName('input')[0].value console.log(Number(CCC));

実現したいこと

上記のコードを、下記のコードのように、for loopにしてprintしたいです。

length = document.getElementsByClassName("col_ID").length; for (let i = 0; i <= length; i++) { output_int = document.getElementsByClassName("col_ID")[i].getElementsByTagName('input')[0].value; console.log(Number(output_int)); }

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

イメージ説明

該当のソースコード

140行目がERRORが出てきました
イメージ説明

試したこと

for loopにする前、普通でprintできるのに、
何故for loopにすると、ERRORが出てきたでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

たとえば、
length = document.getElementsByClassName("col_ID").length
の length が 「3」 のとき、

js

1for (let i = 0; i <= length; i++) {

とすると、i は 0 から 3 までの 4個 の値をとります。
i が 3 のとき、
document.getElementsByClassName("col_ID")[i]
すなわち
document.getElementsByClassName("col_ID")[3]
は undefinedになっていると考えられます。

(語弊を恐れずに言えば、「3個しかないのに4個目を取得しようとしたからエラーになっている」というような感じです)

js

1for (let i = 0; i < length; i++) {

としてみてはいかがでしょうか。

投稿2022/11/14 14:08

編集2022/11/14 14:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

EOU818

2022/11/14 14:16 編集

直ぐ理解しました! 誠にありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問