JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
2022-02-10 06:14:46
html コードです。
<body>
<button id="button">Click me</button>
<img id="image" src="cat.png" width="100px">
</body>
JSコードです。
<script>
var button = document.getElementById("button"),
image = document.getElementById("image");
button.onclick = function () {
image.style.display = "none";
};
</script>
実現したい効果:ボタンがクリックされると、画像が消える。
私がやったこと jsのコードを<head>に入れたところ、Uncaught TypeErrorというエラーが発生しました。プロパティ'onclick'をnullに設定できません。
改善されました。JSコードを</body>の最後の前に置くと、完全に動作するようになりました。
Q:なぜこのようなことが起こるのでしょうか?JSコードの実行順序と関係があるのでしょうか。
回答 いくつかの情報を確認したところ、<head>に配置されたJSコードは、ページよりも先に実行されることがわかりました。
別の方法として、元のJSコードを
<スパン
window.οnlοad=function() { ... }
この場合、window.onloadはページが読み込まれた後に実行される関数を示しているので、JSコードが <head> に配置されても完全に動作します。
関連
-
JavaScriptの関数この指摘の問題を説明
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
スーパー式は null か関数でなければならず、未定義ではない エラーの報告および解決方法
-
jquery.ajaxのbeforeSendメソッド(プログレスバー、「お待ちください」プロンプトなどを解決する .............................)。
-
angularJSの深いネストしたngRepeatで異なるレベルの$indexを取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
vueが定義するプライベートフィルタと基本的な使い方
-
Vueのクラススタイルの使い方の詳細
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み] 期待される代入または関数呼び出し: 未使用式なし ReactJS
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
Uncaught TypeError: null のプロパティ 'appendChild' を読み取れませんでした。