2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Uncaught TypeError: Cannot set properties of null (setting 'onclick')

Last updated at Posted at 2022-01-15

前提

「クリック」の文字を押下すると「クリックされた!」が表示されるプログラムの作成。
以下のエラーがでた。

Uncaught TypeError: Cannot set properties of null (setting 'onclick')

HTML

<body>
    <div id="text-button"><p id="text">クリック</p></div>
</body>

Javascript

document.getElementById("text-button").onclick = function() {
  document.getElementById("text").innerHTML = "クリックされた!";
};

解決法

以下に変更。

Javascript

window.onload = function () {
  document.getElementById("text-button").onclick = function () {
    document.getElementById("text").innerHTML = "クリックされた!";
  };
};

window.onload = function () とは
ページが完全に読み込まれた直後に実行させたいスクリプトを書く方法である。

原因

 <div id="text-button"><p id="text">クリック</p></div>

が実行される前に

document.getElementById("text-button").onclick = function() {
  document.getElementById("text").innerHTML = "クリックされた!";
};

が実行されているから
document.getElementById("text-button").onclickが
nullになり、エラーが出る。

"text-button"なんて無いって言われている。

終わりに

実行タイミングを理解する必要がある。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?