html
1<img src="aaa.jpg" onclick="number(1);"> 2<img src="bbb.jpg" onclick="number(2);"> 3<img src="ccc.jpg" onclick="number(3);">
javascript
1function number(num) { 2 console.log(num); 3}
aaa.jgpを押すとコンソールに1が、bbb.jgpを押すと2が、ccc.jgpを押すと3が出力されるようにしたいです。しかし、画像を押してもコンソールには「Uncaught ReferenceError: number is not defined at HTMLImageElement.onclick」と表示されてしまいます。どうすればいいでしょうか。
ーーー<追記>ーーー
上では省略して書いていましたが、もう少し正確にコードを書きます。
html
1<div class="main"></div>
javascript
1var main = document.getElementsByClassName('main'); 2 3function imgAppear() { 4 for(var i = 0; i < 6; i++) { 5 var img = document.createElement('img'); 6 7 img.src = 'image' + i + '.jpg'; 8 img.setAttribute('onclick', 'number(' + i + ');'); 9 img.classList.add('img'); 10 main[0].appendChild(img); 11 } 12} 13 14function number(num) { 15 console.log(num); 16} 17 18imgAppear();
このJavaScriptの部分を…
javascript
1(function() { 2 'use strict'; 3 4 5})();
これで囲むとエラーが表示されるのが分かりました。これで囲まなければ、画像を押したときにちゃんと数字が表示されます。
なぜこれで囲むとエラーが出るのでしょうか?
回答3件
あなたの回答
tips
プレビュー