🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

Q&A

解決済

2回答

731閲覧

JavaScript-【js】'addEventListener' of undefinedの解決策を教えて頂けませんでしょうか?

CaLXLu_pso2

総合スコア5

JavaScript

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

0グッド

0クリップ

投稿2019/12/19 11:48

htmlとjavascript初心者です。
初歩的なミスだとは思われますが、
自分ではどこに問題があるのかご教示いただけないでしょうか。
よろしくお願いします。

前提・実現したいこと

HTMLとJavaScriptを用いて画像のスライドショー並びに音声ガイドを日本語と英語で行いたいです。
問題が発生している場所はJavaScriptであるためそちらのソースコードを乗せます。

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

Uncaught TypeError: Cannot read property 'addEventListener' of undefined at ex9.js:104

該当のソースコード

var img_num; var path="./img/"; var count, modnum; var imgObj, capObj; var bttnObj, resetObj; var img_file = ["./parrots.jpg/", "./mandrill.jpg/", "./pepper.jpg/"]; var img_capEn = ["Photo of Parrots", "Photo of Mandrill", "Photo of Pepper"]; var img_capJa =["オウム", "マンドリル", "ペッパー"]; var langObj; imgObj = document.getElementById('fig-img'); capObj = document.getElementById('fig-cap'); bttnObj = document.getElementById('change'); resetObj = document.getElementById('reset'); LangObj = document.getElementById('select-lang'); img_num = img_file.length; console.log('img_num = %d', img_num); ~中略~ langObj = langObj.addEventListener('change',function(){ lang(); }, false ); bttnObj.addEventListener("click",function(){ bttn(); }, false ); resetObj.addEventListener("click", function(){ reset(); }, false );

補足情報(FW/ツールのバージョンなど)

中略部分は音声案内や話す言語のピッチやボリュームであるため関係ないと思われます。
またエラー文の 「ex9.js」はこのファイル名であり、
104行目の分は「 langObj = langObj.addEventListener('change',function(){ 」
になります。
OS:Windows 10 Home バージョン:1903
エディタ:TeraPad

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

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

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

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

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

guest

回答2

0

ベストアンサー

js

1var img_capJa =["オウム", "マンドリル", "ペッパー"]; 2var langObj; // <- 小文字 3 4imgObj = document.getElementById('fig-img'); 5capObj = document.getElementById('fig-cap'); 6bttnObj = document.getElementById('change'); 7resetObj = document.getElementById('reset'); 8LangObj = document.getElementById('select-lang'); // <- 大文字 9 10img_num = img_file.length; 11console.log('img_num = %d', img_num); 12 13~中略~ 14 15langObj = langObj.addEventListener('change',function(){ // <- 小文字 16 lang(); 17 }, 18 false );

langObj.addEventListener()langObj に再代入している意味がご提示のコード中からは読み取れませんが、こちらも再代入不要であればしないほうがいいでしょう。

投稿2019/12/19 11:59

thyda.eiqau

総合スコア2982

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

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

CaLXLu_pso2

2019/12/19 12:10

回答ありがとうございました。お陰様で解決できました。
guest

0

google翻訳
Uncaught TypeError: undefineのプロパティ 'addEventListener'を読み取れません

ってことで、langObjにはなにが入ってるのか調べてみては。

投稿2019/12/19 11:52

y_waiwai

総合スコア88038

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問