おみくじを引くプログラミングをJavaScriptで作ったのですがボタンを押しても反応しません。間違っているところを教えてください。お願いします。

画像
補足

切れているのですが</header>の後に</html>は入ってます。

JavaScript71閲覧

ベストアンサー

0

ThanksImg質問者からのお礼コメント

たしかにoneclickは詐欺ですね笑、一番詳しく回答していただけたのでベストアンサーにしました。他の回答者さんもありがとうございました。参考になります。

お礼日時:1/19 0:26

その他の回答(3件)

0

document.getElementById('result')が何回も使われているのを、 const result = document.getElementById('result');として 定数resultを使った方がいいです。

0

num の値を comsole.log で出力しているようですが、ちゃんとコンソールに表示されますか(動作中にエラーがないことはコンソールで確認されていますよね)。 ソースの「画像」では細かい部分まで読み取るのが困難なので、ちょっと原因を探るのが難儀です。できれば(script要素だけでも)テキストでコピペしていただくとよかったんですが・・・ 下記ソースで onclick のケースと addEventListener のケースを試しましたが、どちらでも問題ありません。 <button id="button">click</button> <button onclick="aaa()"">click</button> <div id="result"></div> <script> const button = document.querySelector('#button'); const result = document.querySelector('#result'); button.addEventListener('click', function() { let num = Math.random() * 100; console.log(num); if (num > 90) result.textContent = "aaaaa"; else if (num > 70) result.textContent = "bbbbb"; else if (num > 40) result.textContent = "ccccc"; else if (num > 20) result.textContent = "ddddd"; else result.textContent = "eeeee"; }); function aaa() { let num = Math.random() * 100; console.log(num); if (num > 90) result.textContent = "AAAAA"; else if (num > 70) result.textContent = "BBBBB"; else if (num > 40) result.textContent = "CCCCC"; else if (num > 20) result.textContent = "DDDDD"; else result.textContent = "EEEEE"; } </script>

0

afk********さん >・・・・間違っているところを教えて・・・・・・・ ソーステキストが貼ってなく、見えにくい画像なので確認未了ですが、 少なくとも、16行目は、onclickのタイプミスでしょう。 【正】↓ <button onclick="aaa();">Open</button>